IO流的总结

流操作的基本规律:

最痛苦的就是流对象有非常多。不知道该用那一个。

通过明白来完毕。

(1)、明白源和目的

源:输入流InputStream Reader

目的:输出流OutputStream Writer

(2)、操作的数据是否是纯文本

是:字符流 Reader Writer

不是:字节流 InputStream OutputStream

(3)、当体系明白后。再明白要使用那个详细的对象

通过设备来进行区分:

源设备:内存 硬盘 键盘

目的设备:内存 硬盘 控制台

需求:将一个文本文件里数据存储到还有一个文件里。拷贝文件

源:由于是源,所以使用读取流。InputStream Reader

是否是纯文本文件:是,所以使用
Reader。

接下来明白要使用该体系中的那个对象:

明白设备。硬盘,一个文件。

Reader体系中能够操作文件的是。FileReader。

是否须要提高效率?

BufferedReader

目的:由于是目的,所以使用写入流。OutputStream Writer

是否是纯文本文件:是。所以使用 Writer。

接下来明白要使用该体系中的那个对象:

明白目的,硬盘。一个文件。

Writer
体系中能够操作文件的是,FileWriter。

是否须要提高效率?须要。BufferedWriter

扩展

想要把录入的数据依照指定的编码表(UTF-8),将数据存到文件里,使用转换流,里面能够指定编码。

目的:OutputStream Writer

是否是纯文本?是。Writer

接下来明白要使用该体系中的那个对象:

明白目的,硬盘,一个文件。

Writer
体系中能够操作文件的是,FileWriter。

可是存储时。须要增加指定的编码表,而指定的编码表,仅仅有转换流能够指定。

所以要使用的对象是OutputStreamWriter.

而该转换流对象要接收一个字节输出流。

并且还能够操作文件的字节输出流,FileOutputStream

是否须要提高效率?须要。BufferedWriter

所以,记住,转化暖流什么时候使用,字符和字节之间的桥梁,通常,涉及到字符编码转换时,须要用到转换流。

/*

IO异常的处理方式。

*/

import java.io.*;





class  FileWriterDemo2

{

public static void main(String[] args) 

{

FileWriter fw = null;

try

{

fw = new FileWriter("demo.txt");

fw.write("abcdefg");





}

catch (IOException e)

{

System.out.println("catch:"+e.toString());

}

finally

{

try

{

if(fw!=null)

fw.close();


}

catch (IOException e)

{

System.out.println(e.toString());

}



}





}

}

上一篇:微软AI发布会,集齐六大亮点召唤黑科技!


下一篇:SSO单点登录设计