当前位置: 首页 > news >正文

字符缓冲流BufferedWriter和BufferedWriter

字符缓冲流

1、基本用法

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 
 7 /**
 8  * BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
 9  * BufferedWriter:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
10  * @author Administrator
11  *
12  */
13 public class BufferedStreamDemo {
14     public static void main(String[] args) throws IOException {
15         //创建缓冲流对象
16         BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Test\\bw.txt"));
17         bw.write("hello");
18         //bw.flush();
19         bw.close();
20         
21         //一次读取一个字符
22         //创建输入缓冲流对象
23         BufferedReader br=new BufferedReader(new FileReader("C:\\Test\\bw.txt"));
24         int ch;
25         while((ch=br.read())!=-1) {
26             System.out.print((char)ch);
27         }
28         br.close();
29         System.out.println();
30         //一次读取一个字符数组
31         BufferedReader br2=new BufferedReader(new FileReader("C:\\Test\\bw.txt"));
32         int len=0;
33         char chs[]=new char[1024];
34         while((len=br2.read(chs))!=-1) {
35             System.out.print(new String(chs,0,len));
36         }
37         br2.close();
38     }
39 }

 2、缓冲流复制文本文件两种方式

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 
 7 /**
 8  * 需求:把项目路径下的BufferedStreamCopy.java中的内容复制到项目路径下的copy.java中
 9  * @author Administrator
10  *
11  */
12 public class BufferedStreamCopy {
13     public static void main(String[] args) throws IOException {
14         BufferedReader br=new BufferedReader(new FileReader("BufferedStreamCopy.java"));
15         BufferedWriter bw=new BufferedWriter(new FileWriter("copy.java"));
16          //第一种方式,一次读取一个字符
17 //        int ch;
18 //        while((ch=br.read())!=-1) {
19 //            bw.write(ch);
20 //        }
21         
22          //第二种方式,一次读取一个字符数组
23         int len;
24         char[] chs=new char[1024];
25         while((len=br.read(chs))!=-1) {
26             bw.write(chs,0,len);
27         }
28     
29         br.close();
30         bw.close();
31         
32     }
33 }

 3、缓冲流的特殊功能

BufferedWriter:

    void  newLine():写一个换行符,这个换行符由系统决定

BufferedReader

    String readLine():一次读取一行数据,但是不读取换行符

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 
 7 /**
 8  * 需求:把项目路径下的BufferedStreamCopy.java中的内容复制到项目路径下的copy.java中
 9  * @author Administrator
10  *
11  */
12 public class BufferedStreamCopy {
13     public static void main(String[] args) throws IOException {
14         BufferedReader br=new BufferedReader(new FileReader("copy1.java"));
15         BufferedWriter bw=new BufferedWriter(new FileWriter("copy2.java"));
16         String str;
17         while((str=br.readLine())!=null) {
18             bw.write(str);
19             bw.newLine();
20         }
21         br.close();
22         bw.close();
23         
24         BufferedReader brshow=new BufferedReader(new FileReader("copy2.java"));
25         String str2;
26         while((str2=brshow.readLine())!=null) {
27             System.out.println(str2);
28         }        
29         brshow.close();
30         
31     }
32 }

 

转载于:https://www.cnblogs.com/hopeyes/p/9710533.html

相关文章:

  • 修改BASH的配色
  • OpenStack快照分析:(三)从磁盘启动云主机离线(在线)快照分析
  • php substr说明
  • alterdialog
  • MobIM-API说明
  • mysql5.5.15配置主从数据库
  • 京东美团研发面经
  • windos使用nslookup查询mx记录
  • canvas - drawImage()方法绘制图片不显示的问题
  • JavaScript的性能优化:加载和执行
  • 建站利器 | 阿里巴巴上线静态开源站点搭建工具 Docsite
  • 【SDOI2009】Bill的挑战
  • java与C#的简单比较
  • 关于malloc的一个未解决的疑问
  • ASP.NET Core 基本项目目录结构 - ASP.NET Core 基础教程 - 简单教程,简单编程
  • 收藏网友的 源程序下载网
  • @angular/forms 源码解析之双向绑定
  • @jsonView过滤属性
  • 【知识碎片】第三方登录弹窗效果
  • C++11: atomic 头文件
  • Fundebug计费标准解释:事件数是如何定义的?
  • Github访问慢解决办法
  • Js基础知识(四) - js运行原理与机制
  • node-glob通配符
  • Python3爬取英雄联盟英雄皮肤大图
  • 讲清楚之javascript作用域
  • 利用jquery编写加法运算验证码
  • 如何胜任知名企业的商业数据分析师?
  • 字符串匹配基础上
  • 【云吞铺子】性能抖动剖析(二)
  • #《AI中文版》V3 第 1 章 概述
  • #git 撤消对文件的更改
  • ( 10 )MySQL中的外键
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (笔试题)分解质因式
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (三) diretfbrc详解
  • (顺序)容器的好伴侣 --- 容器适配器
  • (五)IO流之ByteArrayInput/OutputStream
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)大型网站架构演变和知识体系
  • .Net Web窗口页属性
  • .NET 发展历程
  • .NET 回调、接口回调、 委托
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .Net的DataSet直接与SQL2005交互
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • [ C++ ] 继承
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [BIZ] - 1.金融交易系统特点