案例
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
public class RWByBufferCharStream {
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
public class RWByBufferCharStream {
public static void main(String[] args) {
/*
* 数据的读 出
*/
//File file = new File("1.txt");
try {
//传入一个文件字符流输入流
FileInputStream fileInputStream = new FileInputStream("1.txt");
//将字符流转化为字节流
FileOutputStream fileOutputStream = new FileOutputStream("i_newbuffer.txt");
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"UTF-8");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
//BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
PrintWriter printWriter = new PrintWriter( outputStreamWriter,true);//使用这个类会有换行符出现
String input;
while((input=bufferedReader.readLine())!=null)//读取文件的一行数据
{
//bufferedWriter.write(input);// BufferedWriter bufferedWriter自带有缓冲区 只有当缓冲区写满后才写入硬盘这样 可以提高硬盘使用量,硬盘的寿命 整体写出时间变短
printWriter.println(input);//输出有换行符的字符串
}
//读取一段缓存流后需要 写入到文件中
//为了 保证缓冲区所有文件都输出 需要强制输出 printWriter.flush();
printWriter.flush();
printWriter.close();
bufferedReader.close();
outputStreamWriter.close();
inputStreamReader.close();
fileOutputStream.close();
fileInputStream.close();
System.out.println("文件拷贝完成");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 数据的读 出
*/
//File file = new File("1.txt");
try {
//传入一个文件字符流输入流
FileInputStream fileInputStream = new FileInputStream("1.txt");
//将字符流转化为字节流
FileOutputStream fileOutputStream = new FileOutputStream("i_newbuffer.txt");
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"UTF-8");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
//BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
PrintWriter printWriter = new PrintWriter( outputStreamWriter,true);//使用这个类会有换行符出现
String input;
while((input=bufferedReader.readLine())!=null)//读取文件的一行数据
{
//bufferedWriter.write(input);// BufferedWriter bufferedWriter自带有缓冲区 只有当缓冲区写满后才写入硬盘这样 可以提高硬盘使用量,硬盘的寿命 整体写出时间变短
printWriter.println(input);//输出有换行符的字符串
}
//读取一段缓存流后需要 写入到文件中
//为了 保证缓冲区所有文件都输出 需要强制输出 printWriter.flush();
printWriter.flush();
printWriter.close();
bufferedReader.close();
outputStreamWriter.close();
inputStreamReader.close();
fileOutputStream.close();
fileInputStream.close();
System.out.println("文件拷贝完成");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
结果 如下:
文件拷贝完成