使用IO流的规律总结:


使用IO流的规律总结:


因为是源 所以用读取流 

BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));

(向)

System.setIn(new FileInputStream("e.txt"));设置输入对象(

+=BufferedReader bufr=new BufferedReader(new InputStreamReader(new FileInputStream("e.txt")));

但是没有这么写的,了解一下,

因为是目的,所以用输出流

BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));

(向

(1)System.setOut(new PrintStream("d.txt"));设置输出对象(目的

   (2)System.setOut(new PrintStream(new FileOutputStream("d.txt")));设置输出对象(目的)

   但是这另种方式有什么区别呢??

+=BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d.txt")));

但是没有这么写的,了解一下,

总结:以上只是掌握知识,实际应用中,以主,注意严格按照:老师说的 ,三个明确,即源目的文本设备


使用IO流的规律总结:

三个明确 确定体系 (四个):

1,源和目的

源:输入流:InputStreamReader

目的:输出流:OutputStreamWriter

2,操作数据是否是纯文本

是:字符流

不是:字节流

    体系明确后,

3,在明确使用哪个对象通过设备来区分

源设备:内存,硬盘,键盘

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

实例分析:

1将一个文件的数据存储到另一个文件中,(复制文件) 

源:1、因为是源 所以用读取流 InputStreamReader文件。

 2、是不是文本文件啊。

    是! 这就可以使用 Reader

    这样体系就明确了

     3、设备:硬盘,一个文件

    结下来就要明确要使用该体系中的哪个对象

    Reader体系中可操作文件的对象是FileReader

        FileReader fr=new FileReader("fds.txt");

---------------------------------------------------

是否需要提高效率:。加入Reader体系中的缓冲区

BufferedReader

    BufferedReader bufr=new BufferedReader(fr);

目的1、因为是目的,所以使用输出流 OutputStreamWriter

       2、是不是文本文件啊。是!Writer

       3、设备:硬盘,一个文件

           Writer可以操作文件的对象是FileReader

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

----------------------------------------------------

       是否需要提高效率:。加入Writer体系中的缓冲区BufferedWriter

      BufferedWriter bufw=new BufferedWriter(fw); 

2,将键盘录入的数据保存到文件中

源:1、因为是源 所以用读取流 InputStreamReader文件。

 2、是不是文本文件啊。

    是! 这就可以使用 Reader

    这样体系就明确了

     3、设备:键盘。(对应的对象是System.in


  

为了操作键盘的文本数据方便。转换成字符流,按照字符串操作时最方便的

所以既然明确了Reader,那么就将System.in转换成Reader

用到了Reader中的转换流,叫做InputStreamReader

InputStreamReader isr=new InputStreamReader(System.in);

需要提高效率吗》需要:

BufferedReader bufr =new BufferedReaderisr;

目的:1、因为是目的,所以使用输出流 OutputStreamWriter

       2、是不是文本文件啊。是!Writer

       3、设备:硬盘,一个文件

           Writer可以操作文件的对象是FileReader

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

----------------------------------------------------

         是否需要提高效率:。加入Writer体系中的缓冲区BufferedWriter

          BufferedWriter bufw=new BufferedWriter(fw); 

扩展,把录入的文件按照指定的编码表,将数据存储到文件中

例如(UTF-8

    FileWriter 使用的是默认编码我们用的是GBK

所以我们可以是指定编码,转换流的一个大作用就是转换编码表

----------------------------------------

目的OutputStreamWriter

是否是纯文本,是! Writer

设备:硬盘,一个文件 使用FileWriter

(但是FileWriter使用的默认编码表,GBK

但是,存储时需要加入指定的编码表,就要使用转换流

所以使用对象是OutputStreamWriter

而该转换流对象要接受一个字节输出流,而且还可以操作的文件的字节输出流,

OutputStreamWriter osw =new OutputStreamWriter(new FileOutputStream("d.txt"),"UTF-8");

需要高效吗:需要

BufferedWriter bufw= new BufferedWriterosw;

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




你可能感兴趣的:(java,android,IO,存储,扩展)