bufferreader与bufferwrite以及用法与readline()方法原理自述总结
2015-06-22 13:54
741 查看
缓存可以说是I/O的一种性能优化。缓存流为I/O流增加了内存缓存区。有了缓存区,使得在流上执行skip()、mark()、reset()、方法都成为可能。
缓存区要结合流才能实现。
缓存区在流的基础上对流的功能进行了加强。
构造方法:
BufferedReader(reader in)
创建一个默认大小输入缓存区的字符输入流
BufferedReader(reader in, int sz)
创建一个给定大小输入缓存区的字符输入流
read(char[] chuf, int off , int len );将字符读入数组的某一部分
readLine();读取一个文本行
用BufferedReader写的一个小demo,用readLine()方法一行一行读取数据,方便对文本数据的获取,到NULL的时候,说明读到末尾。然后打印数据,最后关闭缓冲流。
readline()的底层实现也是read()方法,也是一次读一个的方法。当readline()读取一个一个的数据暂时取到自己封装的数组当中,当取到换行符的时候,自动把以上取到的数组变成一个字符串,输出出来。
创建一个默认大小输出缓存区的字符输出流
BufferedWriter(writer out , int sz)
创建一个给定大小输出缓存区的字符输出流
flush()——刷新流缓存数据,实时更新
write()——写入字符
newLine()——写入一个行分隔符,也是该缓存区中提供一个快平台的换行符
特点:
缓存区的出现提高了对数据读写的效率。缓存区要结合流才能实现。
缓存区在流的基础上对流的功能进行了加强。
BufferedReader:
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组、行的高效读取。构造方法:
BufferedReader(reader in)
创建一个默认大小输入缓存区的字符输入流
BufferedReader(reader in, int sz)
创建一个给定大小输入缓存区的字符输入流
方法:
read();读取单个字符read(char[] chuf, int off , int len );将字符读入数组的某一部分
readLine();读取一个文本行
实例:
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Bufferedreader { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("D:\\1.txt"); BufferedReader br = new BufferedReader(fr); String str = null;
// <span style="background-color: rgb(240, 240, 240);">到NULL的时候,说明读到末尾</span> while((str=br.readLine())!=null){ System.out.println(str); } br.close(); } }
用BufferedReader写的一个小demo,用readLine()方法一行一行读取数据,方便对文本数据的获取,到NULL的时候,说明读到末尾。然后打印数据,最后关闭缓冲流。
readline()方法原理:
readline()的底层实现也是read()方法,也是一次读一个的方法。当readline()读取一个一个的数据暂时取到自己封装的数组当中,当取到换行符的时候,自动把以上取到的数组变成一个字符串,输出出来。BufferedWriter:
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组、字符串的高效写入。构造方法:
BufferedWriter(writer out)创建一个默认大小输出缓存区的字符输出流
BufferedWriter(writer out , int sz)
创建一个给定大小输出缓存区的字符输出流
方法:
close()——关闭缓存区字符输出流flush()——刷新流缓存数据,实时更新
write()——写入字符
newLine()——写入一个行分隔符,也是该缓存区中提供一个快平台的换行符
实例:
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Bufferedwriter { public static void main(String[] args) throws IOException { // 字符写入流 FileWriter fw = new FileWriter("D:\\1.txt"); // 缓冲输出流 BufferedWriter bw = new BufferedWriter(fw); // 输出字符串 bw.write("asdflkjasdlfjla"); // 刷新缓冲流 bw.flush(); // 关闭缓冲流 bw.close(); } }
用法:
用缓冲区复制文件。
</pre><pre name="code" class="java"><pre name="code" class="java"><pre name="code" class="java">public class CopyText { public static void main(String[] args) { // 声明缓冲输入输出 BufferedReader bis = null; BufferedWriter bos = null; // 可能有异常 要try catch try { // 创建缓冲输入,写出根路径 bis = new BufferedReader(new FileReader("D:\\1.txt")); // 创建缓冲输出,写出复制文件路径 bos = new BufferedWriter(new FileWriter("D:\\2.txt")); // 判断文件字节是否完结,无则继续写入复制文件。 String line = null; while ((line=bis.readLine())!=null) { //读取写入 bos.write(bis.read()); bos.flush(); } } catch (Exception e) { e.printStackTrace(); } finally { // 关闭输入流
try { if (bis!=null) { bis.close(); } } catch (IOException e) { e.printStackTrace(); } // 关闭输出流 try { if (bos!=null) { bos.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
相关文章推荐
- visual studio code 调试 sails.js
- 前端世界的憧憬
- CSS3感应鼠标背景闪烁和图片缩放效果
- Javascript原型与对象等知识
- JavaScript 2048小游戏
- 高性能JavaScript笔记一(加载和执行、数据访问、DOM编程)
- javascript
- Bootstrap 基本用法(续)
- 使用jQeury控制form动态发送请求
- 使用css3伪元素制作时间轴并且实现鼠标选中高亮效果
- Bootstrap 基本用法
- ReactNavtive框架教程(1)
- javascript面向对象
- HTML页面加载和解析流程
- 什么时候需要使用eval转换json
- Bootstrap3 CSS中引用,列表,描述
- javascript学习笔记(变量篇)
- 北京络捷斯特物流系统(四)
- grails处理html表格一例
- 【JavaScript】分秒倒计时器