2011-10-29 26 views
0

CODE这个程序既不读取也不写入文件

import java.io.*; 
class tester { 
public static void main(String args[]) { 
    try { 
    FileReader reader = new FileReader(new File("d:\\UnderTest\\check123.txt")); 
    FileWriter writer = new FileWriter(new File("d:\\UnderTest\\check123.txt")); 
    BufferedReader br = new BufferedReader(reader); 
    String s; 
    while((s=br.readLine()) != null) { 
     System.out.println(s); 
    } 
    writer.write("Shadow Shadow"); 
    } catch(Exception exc) { 
    System.out.println(exc); 
    } 
    } 
} 

这个代码写什么,并没有读取当我运行它。这个程序中的错误在哪里?

+0

正常工作对我来说,一旦正确的关闭是。不关闭的作家,文件内容消失(在Ubuntu),将*出现*不工作了。 –

回答

2

你确定当你第一次阅读,那么内容是在文本文件中? 您需要关闭您的try-catch块的finally块(当前在您的代码中缺少)中的Reader和Writer。关闭流自动刷新内容。

+0

我认为关闭也是问题,+1。由于它是同一个文件,你认为OP需要完全阅读,然后关闭阅读器,然后编写并关闭作者? –

+0

我认为就是这样,首先仔细阅读(完成后关闭流),然后在完成阅读后再写内容。这就是当前代码看起来要达到的最终结果(虽然写得有点错误) – Saurabh

1

确保关闭阅读器和作者。使用作家后,您需要刷新内容或关闭作家(它也会做同样的事情)。我测试了这个,它工作。

import java.io.*; 
class tester { 
public static void main(String args[]) { 
    try { 
    FileReader reader = new FileReader(new File("c:\\check123.txt")); 
    FileWriter writer = new FileWriter(new File("c:\\check123.txt")); 
    BufferedReader br = new BufferedReader(reader); 
    writer.write("Shadow Shadow");  
    writer.close(); 

    String s; 
    while((s=br.readLine()) != null) { 
     System.out.println(s); 
    } 
    reader.close(); 

} catch(Exception exc) { 
    System.out.println(exc); 
    } 
} 

}

+0

尽管我现在可以写,但我无法从文件读取 – saplingPro