IO流:
1.分类:
1.按流向分:
输入流和输出流
2.按数据的操作类型:
字节流和字符流.
2.字节流:
InputStream:字节输入流(抽象类)
|--FileInputStream:文件输入流
OutputStream:字节输出流(抽象类)
|-FileOutputStream:文件输出流
3. 文件读写操作:
(掌握)
1.每次只读写一个字节的方式:(效率太低,一般不用,读写内容很少的时候,可以用)
FileInputStream fis = new FileInputStream("yyy.txt");
FileOutputStream fos=new FileOutputStream("xxx.txt");
int b;
while((b=fis.read())!=-1){
fos.write(b);
}
fos.close();
fis.close();
2.定义一个跟文件一样大小的数组,一次读入整个文件到数组中,再一次性写出去
不推荐这种方式,代码略.
(掌握)
3.定义一个小数组,每次读入一个数组大小的内容,再写出到文件中,直到读完为止.
FileInputStream fis = new FileInputStream("yyy.txt");
FileOutputStream fos=new FileOutputStream("xxx.txt");
byte[] arr=new byte[1024];
int len;
while((len=fis.read(arr))!=-1){
fos.write(arr,0,len);
}
fos.close();
fis.close();
4.使用带缓冲区的流对象:
BufferedInputStream
BufferedOutputStream
这两个对象的用法跟上面一样
不同的地方在于,读写一个字节时,效率非常高
如果两种方式都是使用小数组读写多个字节,建议使用FileInputStream和FileOutputStream.
5.flush方法和close方法的区别:
1.flush: 把缓冲区中的数据刷新到硬盘上.可以多次调用这个方法
2.close: 主要的作用是关闭流对象,在关闭流之前会把缓冲区中的数据刷新到硬盘.
这个方法只能调用一次,不可以多次调用.
|
|