package com.io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriter_Reader_class {
public static void main(String[] args) {
//bufferedWriter();
//bufferedReader();
copy_buffered();//用缓冲区复制文本文件
}
/**
* 缓冲区的出现是为了提高流的操作效率而出现的,
* 所以在创建缓冲区之前,必须要先有流对象
* 该缓冲区中提供了一个跨平台的换行符,在Windows和Linux系统下都可以:newLine();
* @author wjw
*
*/
public static void bufferedWriter(){
FileWriter fw=null;
BufferedWriter bw=null;
try{
//创建一个字符写入流对象
fw=new FileWriter("g:\\java\\yes.txt");
//为了提高字符写入流效率,加入了缓冲技术
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
bw=new BufferedWriter(fw);
for (int i = 0; i < 5; i++) {
bw.write("fdasfdsjafk;ldsakfl;djs......"+i);
bw.newLine();//换行,其实里面就是封装了在Windows系统下:“\r\n”,在linux系统下:“\n”
bw.flush();//记住,只要用到缓冲区,就要记住刷新,这里循环依稀刷新一次,防止突然断电,因为缓冲区就是在内存中,这样防数据丢失
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(null!=bw){
bw.close();//缓冲区的存在只是提高效率,真正操作数据的还是FileWriter对象,所以这里关闭的还是FileWriter对象
//其实关闭缓冲区,就是在关闭缓冲区中的流对象
}
}catch(IOException e){
e.printStackTrace();
}
}
}
public static void bufferedReader(){
FileReader fr=null;
BufferedReader br=null;
try{
fr=new FileReader("g:\\java\\yes.txt");
br=new BufferedReader(fr);
//System.out.println(br.readLine());//当读到文件末尾时,返回null
String str=null;
while(null!=(str=br.readLine())){//循环读取数据
System.out.println(str);
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(null!=br){
br.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
//通过缓冲区复制文本文件
public static void copy_buffered(){
FileReader fr=null;
FileWriter fw=null;
BufferedReader br=null;
BufferedWriter bw=null;
try{
fr=new FileReader("g:\\java\\Break_Continue.java");
br=new BufferedReader(fr);
fw=new FileWriter("g:\\java\\yes.txt");
bw=new BufferedWriter(fw);
String str=null;
while(null!=(str=br.readLine())){//readLine()方法只是返回回车符之前的内容,并不返回回车符
bw.write(str);
bw.newLine();
bw.flush();//每次循环刷新
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(null!=br){
br.close();
}
if(null!=bw){
bw.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
}
黑马程序员——BufferedReader,BufferedWriter介绍及复制文本文件
最新推荐文章于 2022-03-05 18:46:34 发布