黑马程序员技术交流社区
标题:
IO流总结
[打印本页]
作者:
597652639
时间:
2016-6-22 00:53
标题:
IO流总结
IO流(IO流概述及其分类).
字节流:InputStream 输入流 读
OutputStream 输出流 写
字符流:
Reader 输入流 读
Writer 输出流 写
IO流(FileInputStream).
重点代码:
read()一次读取一个字节
FileInputStream fis = new FileInputStream("aaa.txt");//要读取的数据必须存在
int b;
while((b = fis.read()) != -1) { //如果读到-1 就证明没有数据了.
System.out.println(b);
}
fis.close();
IO流(FileOutputStream追加).
重点代码:
FileOutputStream fos = new FileOutputStream("bbb.txt",true); //如果没有bbb.txt,会创建出一个
//虽然写出的是一个int数,但是在写出的时候会将前面的24个0去掉,所以写出一个byte
fos.write(98);
fos.write(99);
fos.close();
IO流(拷贝图片).
重点代码:
FileInputStream fis = new FileInputStream("致青春.mp3"); //创建输入流对象,关联致青春.mp3
FileOutputStream fos = new FileOutputStream("copy.mp3");//创建输出流对象,关联copy.mp3
int b;
while((b = fis.read()) != -1) {
fos.write(b);
}
fis.close();
fos.close();
注意:用IO流完成复制文件的操作后要把输入流和输出流对象都关闭。
IO流(flush和close方法的区别).
flush() 刷新缓冲区,流对象还可以继续使用
close() 关闭流对象,但是在关闭之前会有一步刷新缓冲区的操作,流对象不能继续使用
IO流(流的标准处理异常代码1.6版本及其以前).
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream("aaa.txt");
fos = new FileOutputStream("bbb.txt");
int b;
while((b = fis.read()) != -1) {
fos.write(b);
}
} finally {
try {
if(fis != null)
fis.close();
}finally {
if(fos != null)
fos.close();
}
}
IO流(流的标准处理异常代码1.7版本).
try(创建流对象){读写代码的操作}
1.7版本是不需要关流的,会自动关闭.
try(
FileInputStream fis = new FileInputStream("aaa.txt");
FileOutputStream fos = new FileOutputStream("bbb.txt");
//MyClose mc = new MyClose();
){
int b;
while((b = fis.read()) != -1) {
fos.write(b);
}
}
基本就是这些了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2