即使文本文件在包中,也会抛出FileNotFoundException?

时间:2015-08-11 18:43:01

标签: java

程序抛出FileNotFoundException,即使被引用的文件明显位于同一个包中。我已经包含了所有必要的软件包(import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException;)并正确实施了BufferedReaderFileReader类,因此我不确定问题是什么:

public class TryWithResources {

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

        try (BufferedReader br = new BufferedReader(new FileReader(file))) {
            String line;

            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            System.out.println("Can't find file " + file.toString());
        } catch (IOException e) {
            System.out.println("Unable to read file " + file.toString());
        }

    }
}

1 个答案:

答案 0 :(得分:0)

您想要getResourceAsStream而不是FileFileReader

File用于打开文件系统中的文件。 getResourceAsStream用于打开包中的文件(如果部署,则打开jar文件中的文件)。

InputStream in = getClass().getResourceAsStream("test.txt");

这里有很好的信息https://www.novixys.com/blog/read-file-resources-folder-java/