FileReader/FileWriter按照字符流读写;FileInputStream/FileOutputStream按照字节流读写;使用BufferedReader可以使用readLine方法按行读取。本文使用BufferedReader和PrintWriter实现文件的读写。
BufferedReader和PrintWriter实例化方式如下:
File inFile = new File (String path);
BufferedReader br = new BufferedReader (new FileReader(inFile), [int size]); //size可以不指定
File outFile = new File (String path);
PrintWriter pw = new PrintWriter(new FileWriter(outFile,[true])); //FileWriter指定ture方式可以以追加的形式写文件。
测试代码FileWR.class如下:
import java.io.*;
public class FileWR {
public static void main(String[] args) {
FileWR fwr = new FileWR();
fwr.fileTest();
}
public void fileTest(){
try{
File inFile = new File("D:/study/javaworks/src/in.txt");
File outFile = new File("D:/study/javaworks/src/out.txt");
BufferedReader br= null;
PrintWriter pw = null;
if(inFile.exists()){
//create output file
if(outFile.exists()){
/*System.out.println("File out.txt has already existed. Delete it and create a new file");
outFile.delete();*/
System.out.println("File out.txt has already existed.");
}
else{
outFile.createNewFile();
System.out.println("output file is created.");
}
//create BufferedReader and PrintWriter
br = new BufferedReader(new FileReader(inFile));
/*pw = new PrintWriter(new FileWriter(outFile));*/
pw = new PrintWriter(new FileWriter(outFile, true)); //append outFile
String str = null;
//read from inFile and write outFile
System.out.println("ready......");
while(true){
str = br.readLine();
if(str == null){
System.out.println("reading end......");
break;
}
System.out.println(str);
pw.println(str);
//split
}
br.close();
pw.close();
}
else{
System.out.println("Error! Input file doesn't exist.");
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
如果输入输出流指定字符串的编码方式的话,可以如下:
BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream(inFile), “UTF-8) )
PrintWriter pw = new PrintWriter(inFile, "UTF-8") ;