0

我正在尝试使用 BufferedReader 在 JAVA 中打开一个文件,但它无法打开该文件。这是我的代码

 public static void main(String[] args) {


    try 
    {

       BufferedReader reader = new BufferedReader(new FileReader("test.txt"));

       String line = null;
        while ((reader.readLine()!= null))  
        {
            line = reader.readLine();
            System.out.println(line);
        }   
       reader.close();          
    }
    catch(Exception ex) 
    {
        System.out.println("Unable to open file ");             
    }

}

它转到异常并打印无法打开文件。任何我无法阅读的建议。

4

3 回答 3

1

如果您想更接近现代,请尝试取自PathsJavadoc 的 Java 7 解决方案:

final Path path = FileSystems.getDefault().getPath("test.txt");  // working directory
try (final Reader r = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
    String line = null;        
    while ((line = r.readLine()) != null) {
        System.out.println(line);
    }
}  // No need for catch; let IOExceptions bubble up.
   // No need for finally; try-with-resources auto-closes.

您需要声明main为 throwing IOException,但这没关系。无论如何,您没有连贯的处理方式IOException。如果触发了异常,只需读取堆栈跟踪。

于 2013-10-06T04:03:41.793 回答
0

我不知道为什么会这样,但问题似乎是我没有输入文件的完整路径,即使文件在同一个文件夹中。理想情况下,如果文件在同一个文件夹中,那么我不需要输入整个路径名。

于 2013-10-06T03:53:39.020 回答
-1

尝试先检查它是否存在:

File file = new File("test.txt");
if (!file.exists()) {
    System.err.println(file.getName() + " not found. Full path: " + file.getAbsolutePath());
    /* Handling code, or */
    return;
}
BufferedReader reader = new BufferedReader(new FileReader(file));
/* other code... */
于 2013-10-06T03:45:52.600 回答