一、FileInputStream——文件输入字节流
1、构造方法:
(1)public FileInputStream(String name); 通过指定路径创建文件输入流对象。(常用)
InputStream input = new FileInputStream("test2.txt");
(2)public FileInputStream(File file); 通过指定File对象来创建输入流对象
2、声明方法:
(1)int read(); 读取输入流中字节数据,转换成整数。每读一次,自动获取下一个数据。数据读完后返回-1;
int read=input.read();
(2)int read(byte[] b); 将读取的数据存储在一个字节数组中。
char[] c =new char[1024];
int len=input.read(c);
(3)void close();关闭数据流
input.close();
其中,如果想要一次性读取多个数据,代码实现为
InputStream input = new FileInputStream("test2.txt");
//一次性读取多个数据
//声明一个byte类型数组,用于存储每次读取到的数据,读取的数据个数,取决于数组的长度,长度一般是1024的整数倍
byte[] n=new byte[1024];
int read;
//返回值表示每次获取到的有效数据的个数,如果为-1表名已经读完
while((read=input.read(n))!=-1){
//new String(byte[] b,int off,int len)
System.out.println(new String(n,0,read));
}
input.close();
}
二、FileOutputStream——文件输出字节流
1、构造方法:
(1)public FileOutputStream(String name); 通过指定路径创建文件输出流对象(常用)。true表示在文件中再次写入数据。
FileOutputStream output=new FileOutputStream("text.txt",true);
(2)public FileOutputStream(File file); 通过指定File创建输出流对象
2、声明方法:
(1)void write(); 写入单个数据。其中写入的数据会转换成二进制存储在文件中,当通过某文本或者是某软件打开时,通过ASCLL码转换(0-127),其余通过电脑默认编码转换(gbk)
output.write();
(2)void write(byte[] b ,int off,int len); 写入多个数据。
byte[] b={48,49,50,52};
output.write(b,1,3)//将数组中下标为1到3的字节写入文件
(3)void write(String str); 写入字符串。
String str="吃饭了吗";
output.write(str.getBytes());//String 是一个字符串,方法的传入参数是int类型的字节
(4)void close(); 关闭流
output.close();
三、FileReader——文件输入字符流
1、构造方法:
(1)public FileReader(String name); 通过指定文件路径创建对象
FileReader in=new FileReader("text.txt");
(2)public FileReader(File file); 通过指定文件创建对象
2、声明方法:
(1)int read(); 读取一个字符
int i=in.read();
(2)int read(char[] cbuf); 读取一些字符,存储在字符数组中
(3)void close();
四、FileWriter——文件字符输出流
1、构造方法:
FileWriter out=new FileWriter();
2、方法
五、总结
字节流(FileInputStream/FileOutputStream)可以用来操作文本文件,图片和视频。
字符流(FileReader/FileWriter)只能用来操作文本文件,当我们单纯读写文本文件时,使用字符流
缓冲流
六、字节缓冲流
1、BufferedOutputStream——字节缓冲输出流
1.1构造方法:
public BufferedOutputStream(OutputStream out); 传递一个输出流对象来创建一个缓冲输出流对象
BufferedInputStream input=new BufferedInputStream(new FileInputStream("D:\\progam\\keyj2205\\test\\test\\11.jpg"));
1.2声明方法:同FileOutputStream
2、BufferedInputStream——字节缓冲输入流
2.1构造方法:
BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream("D:\\progam\\keyj2205\\test\\test\\JJJ.bmp"));
2.2声明方法:同FileInputStream