import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.LineNumberReader;
/**
* 只要关闭最外层的就OK。
* JDK使用的时包装器模式,只关最外层的,
* 里面的相应的也会自动关闭。看源码就知道了
* @author Administrator
*
*/
public class Test {
public void writeFile(){
File file=new File("C:\\web.xml");
BufferedWriter bw=null;
try {
//true表示追加,没有true,默认是覆盖
//使用缓存提供写速度,写的时候先写到缓存,不是每次都写入文件
//最后一次才写入文件
bw=new BufferedWriter(new FileWriter(file,true));
bw.write("cxm");
bw.newLine();//写个换行符
} catch (IOException e) {
e.printStackTrace();
}finally{
//关闭流一定要像这样
if(bw != null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 一行一行地读入文件的内容
* @return
*/
public String readFile(){
File file=new File("C:\\web.xml");
LineNumberReader lr=null;
StringBuilder sb=new StringBuilder();
try {
//这样搞更快
lr=new LineNumberReader(new BufferedReader(new FileReader(file)));
String s=lr.readLine();
while(s != null){
sb.append(s+System.getProperty("line.separator"));
s=lr.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(lr != null){
try {
lr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(new Test().readFile());
}
}