黑马程序员_IO流(一)

来源:互联网 发布:js自动切换图片 编辑:程序博客网 时间:2024/05/29 03:55

------- android培训、java培训、期待与您交流! ----------

IO流第一部分


1.IO流(掌握)
    (1)IO的分类
        A:数据流向
            输入流
            输出流
        B:数据类型
            字节流
                字节输入流
                字节输出流
            字符流
                字符输入流
                字符输出流

        如果数据能够用记事本打开并能读懂就用字符流。否则就用字节流。
    (2)IO流分类的基类
        A:字节流
            输入流:
                InputStream
                FileInputStream
                BufferedInptuStream
            输出流:
                OutputStream
                FileOutputStream
                BufferedOutputStream

        B:字符流
            输入流:
                Reader
                FileReader
                BufferedReader
            输出流:
                Writer
                FileWriter
                BufferedWriter




        注意:每种类型的流对象都是以该类型的基类名做后缀名。
    (3)字符输出流FileWriter的使用
        使用步骤:
            创建字符输出流对象
            调用对象的写入功能
            释放资源

        代码体现:
          

  FileWriter fw = new FileWriter("fw.txt");            fw.write("hello,io");            fw.flush();            fw.close();



        问题?请思考。
            A:创建字符输出流对象做了哪些事情?
                 字符输出流操作步骤:
                      A:创建字符输出流对象
                      B:通过调用字符输出流对象写入数据
                      C:释放资源
            B:为什么字符输出流对象没有无参构造?
你将来肯定要把数据存储到某个地方,你得指定目的地。
            C:数据写入后,为什么需要刷新?
            D:数据写入完毕后,为什么要释放资源?
            E:释放资源和刷新缓冲区的区别?
               flush():刷新缓冲区,流对象还可以继续被使用。
               close():刷新缓冲区,并释放资源。流对象不可以在继续被使用。
            F:如何实现数据的追加写入?
            G:如何实现数据的换行写入?
    (3)字符输入流FileReader的使用
        使用步骤:
            创建字符输入流对象
            调用对象的读取功能
            释放资源

        代码体现:
          
  FileReader fr = new FileReader("fw.txt");            //方式1            int ch = 0;            while((ch=fr.read())!=-1)            {                System.out.print((char)ch);            }            //方式2            char[] chs = new char[1024];            int len = 0;            while((len=fr.read(chs))!=-1)            {                System.out.print(new String(chs,0,len));            }            fr.close();


    (4)复制文本文件(自己补齐)
        需求:把项目路径下的a.txt复制到项目路径下b.txt

        数据源:

        目的地:

        方式1:一次读写一个字符
        代码体现:
            

        方式2:一次读写一个字符数组
        代码体现:
    (5)高效流的使用
        高效输入流:
            具备基本流的输入功能

            String readLine():一次读取一行数据。只返回数据,不返回换行符。

        高效输出流:
            具备基本流的输出功能

            void newLine():根据系统不同写入一个换行符。
    (3)高效流复制文件
        需求:把项目路径下的a.txt复制到项目路径下b.txt

        数据源:

        目的地:

        A:一次读写一个字符
        代码体现:

        B:一次读写一个字符数组
        代码体现:

        C:一次读写一个字符串
        代码体现:

         
   BufferedReader br = new BufferedReader(new Filereader("a.txt"));            BufferedWriter bw = new BufferedWriter(new FileWriter("b.txt"));            String line = null;            while((line=br.readLine())!=null)            {                bw.write(line);                bw.newLine();                bw.flush();            }                bw.close();            br.close();


原创粉丝点击