import java.io.*;public class writeFile {
 public static void main(String[] args)throws IOException {
 BufferedWriter buf=new BufferedWriter(new FileWriter("test.txt"));
 buf.write("写入一个字符串\n");
 
 BufferedReader in=new BufferedReader(new FileReader("test.txt"));
 System.out.print(in.readLine());
 
 in.close();
 buf.close();
}
}为什么程序的运行结果总是为:null,读不出来文件中的内容?

解决方案 »

  1.   

    in.readLine()只是读取没有保存你把它保存在一个字符串了就好了import java.io.*; public class writeFile { 
    public static void main(String[] args)throws IOException { 
    BufferedWriter buf=new BufferedWriter(new FileWriter("test.txt")); 
    buf.write("写入一个字符串\n"); BufferedReader in=new BufferedReader(new FileReader("test.txt")); 
    String str= in.readLine(); System.out.print(str); in.close(); 
    buf.close(); 


    其实你这样写只能读取一行要是多行就要用循环了为什么程序的运行结果总是为:null,读不出来文件中的内容?
      

  2.   

    public static void main(String[] args)throws IOException { 
    BufferedWriter buf=new BufferedWriter(new FileWriter("test.txt")); 
    buf.write("写入一个字符串\n"); 
    你没有flush(),里面什么都没,加上buf.fluse()或buf.close()
      

  3.   

    应该在读之前,把写的流关掉。
    import java.io.*;public class WriteFile {
    public static void main(String[] args)throws IOException{
    BufferedWriter bw = new BufferedWriter(new FileWriter("aaa.txt"));
    bw.write("aaaaaaaaaaaa/r/n");
    bw.close();
    BufferedReader br = new BufferedReader(new FileReader("aaa.txt"));
    String s = br.readLine();
    br.close();
    System.out.println(s);
    }
    }
      

  4.   

    不好意思 上面说错了原因是因为你的缓冲流关闭的地方错误了输入输出缓冲流事先保存在内存中只有关闭时才会执行 而你的程序在最后才关闭
    当程序看见
    buf.close(); 
    时候才会写入文件中内容而程序却先执行了
    in.close();
    也就是先读取 后写入了 
    在读取的时候test.txt中是空的
    所以才会出现你说的那种情况:
    这样就好了 public static void main(String[] args)throws IOException { 
    BufferedWriter buf=new BufferedWriter(new FileWriter("E:/test.txt")); 
    buf.write("写入一个字符串\n"); 
    buf.close();
    BufferedReader in=new BufferedReader(new FileReader("E:/test.txt"));  System.out.print(in.readLine());   
    in.close(); 
      

  5.   

    这样问题就解决了:
    import java.io.*; public class writeFile { 
    public static void main(String[] args)throws IOException { 
    BufferedWriter buf=new BufferedWriter(new FileWriter("test.txt"));  buf.write("写入一个字符串\n"); 
    buf.close();//这就是你错误的原因,你没有关闭这个流BufferedReader in=new BufferedReader(new FileReader("test.txt")); System.out.print(in.readLine()); in.close(); 
    buf.close(); 

      

  6.   

    改一个地方就行了import java.io.*; public class writeFile { 
    public static void main(String[] args)throws IOException { 
    BufferedWriter buf=new BufferedWriter(new FileWriter("test.txt")); 
    buf.write("写入一个字符串\n"); 
    buf.close();BufferedReader in=new BufferedReader(new FileReader("test.txt")); 
    System.out.print(in.readLine()); in.close(); 
    //buf.close(); 

      

  7.   

    感谢大家的热心帮忙,这个问题终于解决了,缘于没有对知识的深入理解,只知道读写完文件后要关闭,确不知道close()方法的具体应用,再次感谢大家!