public class Test {
public static void Test(){
BufferedReader br=null;
Reader reader=null;


BufferedWriter bw=null;
Writer writer=null;


try {
reader=new FileReader("e://f.txt");
br=new BufferedReader(reader);

writer=new FileWriter("e://f.txt");
bw=new BufferedWriter(writer);

String s=br.readLine();
System.out.println(s);
bw.append(s);
bw.append("abc");

}
catch (Exception e){
e.printStackTrace();
}
finally {

if (bw!=null)
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (writer!=null)
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (br!=null)
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}



if (reader!=null)
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main (String args[]){
Test();
}}System.out.println(s);这个输出的为什么是NULL呢?

解决方案 »

  1.   

    两个不同的流去加载同一个文件,文件被writer流加载时,创建了新文件"f.txt”把原来那个文件覆盖了……
      

  2.   

    答:将
    writer=new FileWriter("e://f.txt"); 
    改成:
    writer=new FileWriter("e://f.txt",true); 试试.
      

  3.   


    也可以用
    FileChannel  进行添加操作
     
      

  4.   

    使用随机流读写文件,可以向文件中追加内容。RandomAccessFile
      

  5.   

    writer=new FileWriter("e://f.txt",true); 
    我知道这是一种方法。
    学习底下的
    [Quote 
    FileChannel  进行添加操作 
    [/Quote]
     
     
      

  6.   

    writer=new FileWriter("e://f.txt",true);是的TRUE是什么意思啊?
    是干什么用的啊?
      

  7.   

    就表示 一个 boolean 值,如果为 true,则将数据写入文件末尾处,而不是写入文件开始处。