IO流的分类
流向:(不管是输入流还是输出流都是相对于你当前的程序而言的)
1.输入流(读read)input
2.输出流(写write)output
传输的内容分:
1.字节数据:图片、音频、视频
字节输入流:InputStream
字节输出流:OutputStream
2.字符数据:abcd
字符输入流:Reader
字符输出流:Writer
不管是字节还是字符流,底层流动的都是字节!
OutputStream的子类
FileOutputStream(File file) 建一个向指定FIle对象表示的文件中写入数据的文件输出流。
FIleOutputStream(String name) 创建一个向具有指定名称的文件中写入数据的输出文件流。
实现步骤:
1.创建流对象(输出管道)
2.把数据变成字节数据
3.用管道传输数据到文件
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Arrays;
/**
* @Desc
* @Author madengling
* @Time 2020/12/24 17:35
*/
public class FileOutputStreamTest02 {
public static void main(String[] args) throws IOException {
/**
* 通过IO流往文件中写入一句话“HELLO IO!”
* 输出流
* 字符流,不管是字节数据还是字符数据,本质上都是字节数据。
* 字节输出流:OutputStream
*
* 创建流对象(输出管道)
* 把数据变成字节数据
* 用管道传输数据到文件
*/
String path = "G:\\dhcc\\idea\\MavenProject\\src\\main\\webapp\\files\\";
//创建流对象
FileOutputStream fos = new FileOutputStream(path+"a.txt",true);
//上面的代码至少干了两件事:1.创建了管道2.把管道怼到了文件上
//流对象会帮助创建文件
//数据
String data = "hello IO";
//把字符数据换成了字节数据
byte[] bytes = data.getBytes();
System.out.println(Arrays.toString(bytes));
//通过管道把数据写进文件
fos.write(97);
fos.write(98);
fos.write(99);
fos.write(bytes);
//\n回车符
byte[] b = "\n麻麻我想吃烤山药".getBytes();
fos.write(b);
byte[] b1 = "abcde".getBytes();
// 写出从索引2开始,2个字节。索引2是c,两个字节,也就是cd。
fos.write(b1,2,2);
System.out.println("写入成功!");
// 关闭资源
fos.close();
}
}