Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

时间:2022-12-22 09:02:56

            Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

                                    作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.字符缓冲流

  字符缓冲流根据流的方向,共有2个:

      1>. 写入数据到流中,字节缓冲输出流 BufferedReader

      2>.读取流中的数据,字节缓冲输入流 BufferedWriter

  完成文本数据的高效的写入与读取操作。

二.字符输出缓冲流(BufferedWriter

Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

 BufferedWriter有一个特有的方法就是newLine,可以解决Windows和Linux换行符不同的困扰。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException; public class BufferedWriteDemo {
public static void main(String[] args) throws IOException {
//创建字符输出流,封装文件
FileWriter fw = new FileWriter("yinzhengjie.txt");
BufferedWriter bfw = new BufferedWriter(fw);
//写入一个字符
bfw.write(97);
//写入换行符,不论你的操作系统是Linux还是Windows它会自动帮你处理换行符号
bfw.newLine();
bfw.flush();
//写入一个字符数组
bfw.write("尹正杰".toCharArray());
//写入换行符,不论你的操作系统是Linux还是Windows它会自动帮你处理换行符号
bfw.newLine();
bfw.flush();
//写入字符串
bfw.write("yinzhengjie");
//写入换行符,不论你的操作系统是Linux还是Windows它会自动帮你处理换行符号
bfw.newLine();
bfw.flush();
bfw.close(); }
}

 三.字符缓冲输入流(BufferedReader)

Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)

  从字符输入流中读取文本,缓冲各个字符,从而实现字符,数组和行的高效读取。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException; public class BufferedReaderDemo {
public static void main(String[] args) throws IOException {
//创建字符输入流缓冲流对象,构造方法传递字符输入流,包装数据源文件
BufferedReader bfr = new BufferedReader(new FileReader("yinzhengjie.txt"));
//调用缓冲流的方法readLine()读取文本行
//循环读取文本行,结束条件readLine()返回null。
String line;
//定义以后计数器,用来定义行号,当然BufferedReader也有一个子类LineNumberReader也可以实现换行号的读取。
int lineNumber = 0;
while( ( line = bfr.readLine()) != null) {
lineNumber++;
//此时的line本身是没有换行符号的,因为换行符已经被readLine给脱掉了,因此我们应该调用println。
System.out.println(lineNumber+" "+line);
}
bfr.close();
}
}

四.字符缓冲区流复制文本文件

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.note5; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException; public class CopyFile {
public static void main(String[] args) throws IOException {
BufferedReader bfr = new BufferedReader(new FileReader("yinzhengjie.txt"));
BufferedWriter bfw = new BufferedWriter(new FileWriter("yinzhengjie.backup")); //读取文本行,读一行,写一行,写换行
String line; //默认为null
while( (line = bfr.readLine()) != null ) {
bfw.write(line);
bfw.newLine();
bfw.flush();
}
bfw.close();
bfr.close();
}
}

Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)的更多相关文章

  1. Java基础—IO小结(二)缓冲流与其它流的使用

    一.缓冲流的使用 每个字节流都有对应的缓冲流: BufferedInputStream / BufferedOutputStream 构造器: 方法摘要与对应节点流类似 使用缓冲流实现文件复制:实际中 ...

  2. Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)

    Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...

  3. Java之缓冲流(字节/字符缓冲流)

    概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流: BufferedInputStream , BufferedOutputStrea ...

  4. Java字节缓冲流和字符缓冲流学习

    1.字节缓冲流 首先要明确一个概念:对文件或其他目标频繁的读写操作,效率低,性能差. 使用缓冲流的好处是,能够高效的读写信息,原理是将数据先缓冲起来,然后一起写入或者读取出来. BufferedInp ...

  5. Java基础-IO流对象之字符类(FileWrite与FileReader)

    Java基础-IO流对象之字符类(FileWrite与FileReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见编码简介 1>ASCII 我们知道计算机是 ...

  6. Java 基础 IO流(转换流,缓冲)

    一,前言 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStr ...

  7. Java基础---IO(一)---IO流概述、字符流、字节流、流操作规律

    第一讲     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都 ...

  8. Java基础-IO流对象之随机访问文件(RandomAccessFile)

    Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对 ...

  9. Java基础-IO流对象之数据流(DataOutputStream与DataInputStream)

    Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型 ...

随机推荐

  1. Cookie和Session的区别详解

    本文引用自:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一 ...

  2. mysql(或者mariadb)连接工具HeidiSQL

    Some infos around HeidiSQL Project website: http://www.heidisql.com/Google Code: http://code.google. ...

  3. self进行weak化

    创建block匿名函数之前一般需要对self进行weak化,否则造成循环引用无法释放controller: __weak MyController *weakSelf = self 或者 __weak ...

  4. 和为S的两个数字VS和为s的连续正数序列

    题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,输出任意一对即可. 例如输入数组1.2.4.7.11.15和数字15.由于4+11=15, ...

  5. poj 2429 Pollard_rho大数分解

    先对lcm/gcd进行分解,问题转变为从因子中选出一些数相乘,剩下的数也相乘,要求和最小. 这里能够直接搜索,注意一个问题,因为同样因子不能分配给两边(会改变gcd)所以能够将同样因子合并,这种话,搜 ...

  6. [Network]Transport Layer

    1 Principles behind Transport Layer Services 1.1 Multiplexing/Demultiplexing Multiplexing at sender ...

  7. 【百度地图API】建立全国银行位置查询系统(四)——如何利用百度地图的数据生成自己的标注

    原文:[百度地图API]建立全国银行位置查询系统(四)--如何利用百度地图的数据生成自己的标注 摘要: 上一章留个悬念,"如果自己没有地理坐标的数据库,应该怎样制作银行的分布地图呢?&quo ...

  8. MySQL插入数据异常

    MySQL插入数据异常 1.错误如下: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:Dupli ...

  9. ASP.NET登录记住用户名

    案例如下: 1:首先在登录的控制器中定义一个全局变量 public const string LonginName = "sessName"; 2:在登陆的方法中 public A ...

  10. EBS业务学习之应付管理

    应付款系统是供应链管理的最后一个环节,它使公司能够支付供应商提供的货物和服务的费用.供应链管理的目标是保持低库存量但又有充足的存货以满足要求,仓库中的库存就等于钱,因此,应付款管理的目标是尽可能地推迟 ...