字节缓冲流 字符流

字节(byte)缓冲流

字节缓冲输入流(*):BufferedInputStream

  • BufferedInputStream(InputStream in):这里的in是一个InputStream类型(建立细管道是使用大管道的前提)
import java.io.*;
public class Demo05 {
    public static void main(String[] args) {
        try {
            long starttime=System.currentTimeMillis();
            //建立细通道
            FileInputStream fis = new FileInputStream("C:\\Users\\chai\\Desktop\\cdg.txt");
            //建立大管道
            BufferedInputStream bis = new BufferedInputStream(fis);
            //定义每次搬运的数量
            byte[] car=new byte[1024];//每次最多搬运1kb
            int len=0;
            while((len=bis.read(car))!=-1){
                System.out.println((char)len);
            }
            //关闭流
            fis.close();
            bis.close();
            long endtime=System.currentTimeMillis();
            System.out.println("所用时间:"+(endtime-starttime));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

字节缓冲输出流(*):BufferedOutputStream

  • BufferedOutputStream(OutputStream out):这里的in是一个OutputStream类型(建立细管道是使用大管道的前提)
  • 将一个文件的内容复制到另一个文件
import java.io.*;
public class Demo05 {
    public static void main(String[] args) {
        try {
            long starttime=System.currentTimeMillis();
            //建立细通道
            FileInputStream fis = new FileInputStream("C:\\Users\\chai\\Desktop\\cdg.txt");
            FileOutputStream fos = new FileOutputStream("C:\\Users\\chai\\Desktop\\cdg1.txt");
            //建立大管道
            BufferedInputStream bis = new BufferedInputStream(fis);
            BufferedOutputStream bos = new BufferedOutputStream(fos);
            //定义每次搬运的数量
            byte[] car=new byte[1024];//每次最多搬运1kb
            int len=0;
            while((len=bis.read(car))!=-1){
                bos.write(car, 0, len);
            }
            //关闭流
            bis.close();
            bos.close();
            long endtime=System.currentTimeMillis();
            System.out.println("所用时间:"+(endtime-starttime));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

字节流 字符流优缺点比较

字节流

  • 字节流可以读取一切文件

字符流

  • 字符流读取纯文本文件比较方便:已经帮我们乱码问题

字符(char)流

  • Reader:字符输入祖宗类

    • FileReader:
    • BufferedReader:
  • Writer:字符输出祖宗类

    • FileWriter:
    • BufferedWriter:
  • 字符输入流:FileReader

import java.io.FileReader;
public class Demo07 {
    public static void main(String[] args) {
        try {
            //1.水厂(数据)
            //2.铺水管:盘符-->程序
            FileReader fr = new FileReader("C:\\Users\\chai\\Desktop\\cdg.txt");
            //3.开水龙头
            char[] car=new char[1024];
            int len=0;
            while((len=fr.read(car))!=-1){
                String str = new String(car,0,len);//char数组转string数组
                System.out.println(str);
            }
            //4.关水龙头
            fr.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

char数组转String数组:String str=new String(char数组,起始下标,结束下标);

  • 字符输出流:FileWriter
import java.io.FileWriter;
import java.io.IOException;
public class Demo07{
    public static void main(String[] args) {
        try {
            //1.数据源
            String str="zho中gnh国anf你osn好jg";
            //2.铺设管道
            FileWriter fw = new FileWriter("C:\\Users\\chai\\Desktop\\cdg.txt");
            //3.开水龙头
            fw.write(str);
            //关水龙头
            fw.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值