IO流的应用

这里存放的文件位置和工程中src目录同级
一、字节流
(1)字节流复制文本文件

 		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("a.txt"));
        BufferedOutputStream bos  = new BufferedOutputStream(new FileOutputStream("b.txt"));
        int by = 0;
        while ((by = bis.read()) != -1) {
            bos.write(by);
        }
        bos.close();
        bis.close();

(2)字节流复制文本文件,用字节数组

  		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("c.txt"));
        BufferedOutputStream bos  = new BufferedOutputStream(new FileOutputStream("d.txt"));
        byte[] bys = new byte[1024];
        int len = 0;
        while ((len = bis.read(bys)) != -1) {
            bos.write(bys,0,len);
        }
        bos.close();
        bis.close();

二、字符流
(1)字符流复制文本文件,每次读取的数据量大的话要flush

		FileReader fr = new FileReader("e.txt");
        FileWriter fw = new FileWriter("f.txt");
        /**
         * 一次复制一个字符
         * int ch = 0;
         * while((ch = fr.read()) != -1){
         *     fw.write(ch);
         * }
         */
        char[] chs = new char[1024];
        int len = 0;
        while ((len = fr.read(chs)) != -1){
            fw.write(chs,0,len);
        }
        fw.close();
        fr.close();

(2)字符缓冲输出流

 		BufferedWriter bw = new BufferedWriter(new FileWriter("g.txt"));
        bw.write("hel");
        bw.write("lo");
        bw.flush();
        bw.close();

(3)字符缓冲输入流读取文件

 	   BufferedReader br = new BufferedReader(new FileReader("h.txt"));
        /**
         * 一次读取一个字符
         * int ch = 0;
         * while((ch = br.read()) != -1){
         * System.out.print((char)ch);
         * }
         */
        char[] chs = new char[1024];
        int len = 0;
        while((len = br.read(chs)) != -1){
            System.out.print(new String(chs,0,len));
        }
        br.close();

(4)字符缓冲流复制文本文件

    	BufferedReader br = new BufferedReader(new FileReader("i.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("j.txt"));
         /**
         * 方式1 
         * String line = null;
         *  while((line = br.readLine()) != null){
         *       bw.write(line);
         *       bw.newLine();
         *       bw.flush();
         *  }
         */
        //方式2
        char[] chs = new char[1024];
        int len = 0;
        while((len = br.read(chs)) != -1){
            bw.write(chs,0 ,len );
            bw.flush();
        }
        bw.close();
        br.close();

字符缓冲流的特殊方法:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值