java BufferedReader和PrintWriter

BufferedReader 为带有默认缓冲的字符输入流,因为缓存是存在内存中,而一般的读取是从硬盘中读取,从内存中读取数据速度要比直接从硬盘中读取快出很多倍,所以BufferedReader 的效率要比普通字符流高出很多

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("G:\\file\\a/test.txt"),"GBK"));


因为 BufferedReader其实是字符流的包装类,所以可以直接给他一个字符流对象来作为参数创建BufferedReader 对象

一般读写流的类都是成对出现,BufferedReader对应自然也有BufferedWriter,不过本次还是使用另一个输出流PrintWriter。

PrintWriter没有对应的输入流,作为处理流使用时,PrintWriter既可以封装OutputStream类型的字节流,还能够封装Writer类型的字符输出流并增强其功能,方法也从不抛出IOException

构造方法表:

PrintWriter(File file) 
          使用指定文件创建不具有自动行刷新的新 PrintWriter。
PrintWriter(File file, String csn) 
          创建具有指定文件和字符集且不带自动刷行新的新 PrintWriter。
PrintWriter(OutputStream out) 
          根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。
PrintWriter(OutputStream out, boolean autoFlush) 
          通过现有的 OutputStream 创建新的 PrintWriter。
PrintWriter(String fileName) 
          创建具有指定文件名称且不带自动行刷新的新 PrintWriter。
PrintWriter(String fileName, String csn) 
          创建具有指定文件名称和字符集且不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out) 
          创建不带自动行刷新的新 PrintWriter。
PrintWriter(Writer out, boolean autoFlush) 
          创建新 PrintWriter。
PrintWriter out = new PrintWriter(new FileOutputStream("G:\\file\\b/test.txt"));
        String str = null;
        while (true){
            str = in.readLine();
            if(str == null){
                break;
            }
            out.println(str);
            out.flush();
        }
        out.close();
        in.close();
BufferedReader 直接用字符串接受读取到的数据,当它==null时就是文件读取完成。

而PrintWriter使用print()方法把数据打印到文件中,每次打印后需要手动flush()来刷新缓存区。

同样,在读写完成之后,需要手动关闭流来释放资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值