=======先参见以下源代码=========
package example.file;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class OrderFile {
private static File file;
private static FileWriter writer;
private static BufferedReader reader;
static {
file = new File("D:\\OrderFile.txt");
}
public static File getFile() {
return file;
}
public static void setFile(File file) {
OrderFile.file = file;
}
public static FileWriter getWriter() {
return writer;
}
public static void setWriter(FileWriter writer) {
OrderFile.writer = writer;
}
@SuppressWarnings("unused")
private synchronized static void saveOrder(String text) throws Exception {
if (null == writer){
writer = new FileWriter(file, true);
}
writer.write(text + "\r\n");
writer.flush();
}
@SuppressWarnings("unused")
private static String readOrder() throws Exception {
if (null == reader){
reader = new BufferedReader(new FileReader(file));
}
StringBuffer buffer = new StringBuffer();
String line = reader.readLine();
while (null != line){
buffer.append(line);
buffer.append("\r\n");
line = reader.readLine();
}
closeFileReader();
return buffer.toString();
}
@SuppressWarnings("unused")
private static void closeFileWriter() throws Exception {
if (null != writer){
writer.close();
}
}
@SuppressWarnings("unused")
private static void closeFileReader() throws Exception {
if (null != reader){
reader.close();
}
}
@SuppressWarnings("unused")
private static String buffer(String retCode){
StringBuffer buffer = new StringBuffer();
buffer.append("<MESSAGE>");
buffer.append("<RETCODE>"+retCode+"</RETCODE>");
buffer.append("<RETMSG>追加文件</RETMSG>");
buffer.append("</MESSAGE>");
return buffer.toString();
}
public static void main(String[] args) throws Exception {
Long t1 = 0L, t2 = 0L;
t1 = System.currentTimeMillis();
for (int i = 1; i <= 100; i++){
OrderFile.saveOrder(buffer(String.valueOf(i)));
}
t2 = System.currentTimeMillis() - t1;
System.out.println("写入所需时间:" + t2);
System.out.println("文件大小:" + OrderFile.getFile().length());
OrderFile.closeFileWriter();
t1 = System.currentTimeMillis();
System.out.println(OrderFile.readOrder());
t2 = System.currentTimeMillis() - t1;
System.out.println("读取所需时间:" + t2);
}
}
使用FileWriter时,利用FileWriter(File file, boolean append) 构造一个FileWriter对象,当append参数值为true时, 会将字节写入文件的末尾,而不是文件的开头.