IO流(一)

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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值