JAVA-IO流中缓存区的使用(BufferedReader和BufferedWriter)以及复制内容
2016-10-14 17:12
447 查看
前言:在java中为了提高FileWriter的写入效率,出现了BufferedWriter缓存技术
缓存区的出现是为了提高流的操作效率而出现的,所以在创建缓存区之前,必须要先有流对象
一、BufferedWriter的使用方法
/*字符写入流缓存区
* 在java中为了提高FileWriter的写入效率,出现了BufferedWriter缓存技术
* 缓存区的出现是为了提高流的操作效率而出现的,所以在创建缓存区之前,必须要先有流对象
* 该缓存区中提供了一个跨平台的换行符就是.newLine()
*/
public static void BufferedWriterDemo() throws IOException{
//创建一个字符写入流对象
FileWriter fWriter = new FileWriter("bfWriter.txt");
//为了提高字符写入流的效率,加入了缓冲技术
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
BufferedWriter bfWriter =new BufferedWriter(fWriter);
for (int i = 0; i < 5; i++) {
bfWriter.write("abcdefg");
bfWriter.newLine();
}
//记住,只要用到缓冲区,就要记得刷新。
// fWriter.flush();
//其实关闭缓存区,就是在关闭缓存区中流对象,所有不再需要关闭fWriter对象
bfWriter.close();
}
二、BufferedReader方法的使用
/*
* 字符读取流缓存区
* 该方法提供了一个每次读取一行内容的方法.readLine(),方便对文本数据的获取。
*/
public static void BufferedReaderDemo() throws IOException{
//创建一个读取流对象和文件相关联
FileReader fReader = new FileReader("bfWriter.txt");
//为了提高效率,加入缓存技术,将字符流对象传递缓存对象的构造函数
BufferedReader bfReaed = new BufferedReader(fReader);
String line = null;
while ((line = bfReaed.readLine())!=null) {//每次读取一行
System.out.println(line); //上面返回的line中的readLine方法中不包含换行符
}
bfReaed.close();
}
三、练习:利用缓存区的功能把A文件复制到B文件中
//使用缓存区复制一个.java文件
public static void BufferedDemo(){
BufferedWriter bfWriter = null;
BufferedReader bfReader =null;
try {
bfWriter = new BufferedWriter(new FileWriter("Demo.txt"));
bfReader = new BufferedReader(new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java"));
String line = null;
while ((line = bfReader.readLine())!=null) {
bfWriter.write(line);
bfWriter.newLine(); //因为每次是读取一行内容,所以显示一行后就得换行
bfWriter.flush(); //刷新内容
}
} catch (IOException e) {
throw new RuntimeException("读写错误!");
}finally{
if (bfWriter !=null) {
try {
bfWriter.close();
} catch (Exception e2) {
throw new RuntimeException("写入关闭失败!");
}
}
if (bfReader !=null) {
try {
bfReader.close();
} catch (Exception e2) {
throw new RuntimeException("读取关闭失败!");
}
}
}
}
缓存区的出现是为了提高流的操作效率而出现的,所以在创建缓存区之前,必须要先有流对象
一、BufferedWriter的使用方法
/*字符写入流缓存区
* 在java中为了提高FileWriter的写入效率,出现了BufferedWriter缓存技术
* 缓存区的出现是为了提高流的操作效率而出现的,所以在创建缓存区之前,必须要先有流对象
* 该缓存区中提供了一个跨平台的换行符就是.newLine()
*/
public static void BufferedWriterDemo() throws IOException{
//创建一个字符写入流对象
FileWriter fWriter = new FileWriter("bfWriter.txt");
//为了提高字符写入流的效率,加入了缓冲技术
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
BufferedWriter bfWriter =new BufferedWriter(fWriter);
for (int i = 0; i < 5; i++) {
bfWriter.write("abcdefg");
bfWriter.newLine();
}
//记住,只要用到缓冲区,就要记得刷新。
// fWriter.flush();
//其实关闭缓存区,就是在关闭缓存区中流对象,所有不再需要关闭fWriter对象
bfWriter.close();
}
二、BufferedReader方法的使用
/*
* 字符读取流缓存区
* 该方法提供了一个每次读取一行内容的方法.readLine(),方便对文本数据的获取。
*/
public static void BufferedReaderDemo() throws IOException{
//创建一个读取流对象和文件相关联
FileReader fReader = new FileReader("bfWriter.txt");
//为了提高效率,加入缓存技术,将字符流对象传递缓存对象的构造函数
BufferedReader bfReaed = new BufferedReader(fReader);
String line = null;
while ((line = bfReaed.readLine())!=null) {//每次读取一行
System.out.println(line); //上面返回的line中的readLine方法中不包含换行符
}
bfReaed.close();
}
三、练习:利用缓存区的功能把A文件复制到B文件中
//使用缓存区复制一个.java文件
public static void BufferedDemo(){
BufferedWriter bfWriter = null;
BufferedReader bfReader =null;
try {
bfWriter = new BufferedWriter(new FileWriter("Demo.txt"));
bfReader = new BufferedReader(new FileReader("E:\\JAVA\\TestMap\\src\\com\\diaobao\\map\\TastMap.java"));
String line = null;
while ((line = bfReader.readLine())!=null) {
bfWriter.write(line);
bfWriter.newLine(); //因为每次是读取一行内容,所以显示一行后就得换行
bfWriter.flush(); //刷新内容
}
} catch (IOException e) {
throw new RuntimeException("读写错误!");
}finally{
if (bfWriter !=null) {
try {
bfWriter.close();
} catch (Exception e2) {
throw new RuntimeException("写入关闭失败!");
}
}
if (bfReader !=null) {
try {
bfReader.close();
} catch (Exception e2) {
throw new RuntimeException("读取关闭失败!");
}
}
}
}
相关文章推荐
- Java基础知识强化之IO流笔记38:字符流缓冲流之BufferedWriter / BufferedReader使用
- java核心技术之IO流(五)BufferedReader和BufferedWriter
- 黑马程序员——java-IO流中复制单击目录以及使用递归的方式复制多级目录小结
- Java基础---Java---IO流-----BufferedReader、BufferedWriter、缓冲区、装饰设计模式及和继承的区别
- Java基础---Java---IO流-----BufferedReader、BufferedWriter、缓冲区、装饰设计模式及和继承的区别
- 黑马程序员_java_IO流_FileWriter_FileReader_BufferedWriter_BufferedReader_IO异常
- JAVA之IO技术BufferedReader,BufferedWriter的缓冲区技术的使用和原理
- Java Socket 使用BufferedWriter和BufferedReader要注意readLine 以及换行标志的发送
- java基础系列之socket使用之BufferedReader,BufferedWriter出现的问题
- 黑马程序员——Java基础——IO流笔记(BufferedReader使用示例)
- Java API —— 编码 & IO流( InputStreamReader & OutputStreamWriter & FileReader & FileWriter & BufferedReader & BufferedWriter )
- Java 使用BufferedWriter和BufferedReader copy file
- JAVA中常用IO流类:BufferedReader和BufferedWriter .
- JAVA 中文件读写函数BufferedReader 和 BufferedWriter 的使用
- BufferedWriter 和 BufferedReader 的基本用法,附演示程序。以及一个复制文本文件的程序
- java中OutputStream字节流与字符流InputStreamReader 每一种基本IO流BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWriter,FileInputStream,FileReader,FileWriter,InputStr
- JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine
- JAVA之旅(二十五)——文件复制,字符流的缓冲区,BufferedWriter,BufferedReader,通过缓冲区复制文件,readLine工作原理,自定义readLine
- Java基础---Java---IO流-----BufferedReader、BufferedWriter、缓冲区、装饰设计模式及和继承的区别
- Java IO 之 BufferedReader BufferedWriter 通过缓冲区实现字符文本文件的复制