Java 8中的FileReader或BufferedReader是否存在问题?

时间:2018-02-01 14:16:42

标签: java eclipse bufferedreader filereader

package fbread;

import java.io.BufferedReader;  
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.FileReader;  
import java.io.IOException;

public class Read {

public static void main(String[] args) {
    File file = new File("text.txt");

    try {
        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }

        br.close();

    } catch (FileNotFoundException e) {
        System.out.println("File not found: " + file);
    } catch (IOException e) {
        System.out.println("Unable to read file: " + file);
    }

}

}

所以我在Eclipse中有这个代码,在我看来是100%正确,但是,当我运行它时,Eclipse中会弹出一个错误(灰色方块,红叉,没有消息)并且没有显示在控制台。

任何人都知道为什么会这样?

我还附上了以下错误的图片:

error

3 个答案:

答案 0 :(得分:0)

我只是运行你的代码,我没有错误。我正在使用eclipse Luna。我做的唯一更改是我将类包装在一个具有不同名称的包中,另外我使用绝对路径来定义要打开的文件。 IDE在运行时很可能出现问题,但使用绝对目录设置文件总是一个好主意。

希望这有帮助!我附上了代码......

package soproblem; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Read { public static void main(String[] args) { File file = new File("C:\\Users\\user\\Desktop\\file.txt"); try { FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String line; while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); } catch (FileNotFoundException e) { System.out.println("File not found: " + file); } catch (IOException e) { System.out.println("Unable to read file: " + file); } } }

答案 1 :(得分:0)

简短的回答:在Java 8中,FileReaderBufferedReader没问题。

问题……显然是因为您的IDE处于一种奇怪的状态,该状态已通过重新启动得以解决。


对于其他认为自己可能在某些常见的Java SE类中遇到问题的人来说,发生此问题的可能性大于99.99%,而不是Java中的问题。真正的问题很可能是以下问题之一:

  • 由于粗心,经验不足,误解您正在使用的某些类/方法,做出错误的假设等导致的代码错误。

  • 第三方语言的错误。

  • IDE行为异常(如果在IDE中运行代码)。 (尝试从命令行运行您的应用程序。)

  • Java或IDE安装损坏。

是的,在JVM和Java SE库中偶尔发现了新的错误。但这很少见,因此应该首先考虑所有其他可能性。因为“它是Java错误!” 错误诊断将停止寻找问题的真正原因。

请记住,还有数百万其他使用Java SE的程序员却没有遇到这些“错误”。 Java 8于6年前发布。对于已经发现并修复的最隐蔽的错误,这已经足够长了。

答案 2 :(得分:-1)

您可以使用以下代码来简化您的代码:

package BufferedReader;
import java.io.*;

public class Buffered {

public static void main(String[] args)throws IOException {

    BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\user\\Desktop\\filename.txt"));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }

    br.close();

 }
}