gpt4 book ai didi

java - FileInputStream 找不到文件

转载 作者:行者123 更新时间:2023-12-01 06:26:49 32 4
gpt4 key购买 nike

我正在用java编写一个程序,它将读取一个文件并将其中的每个单词放入一个数组中,这样我就可以在将每个单词排序到默认数组后对每个单词进行变位词。我很清楚如何执行此操作,但我的 .txt 文件未被读取。我在 src 中有一个名为“input.txt”的文件,其中包含我正在编写的“anagram.java”程序,但是当代码提示输入文件条目时,在输入文件名“input.txt”时,我的代码显示该文件不存在,我得到这个:

Enter file name: 
input.txt
Exception in thread "main" java.io.FileNotFoundException: input.txt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at java.io.FileReader.<init>(FileReader.java:41)
at anagram.main(anagram.java:23)
Java Result: 1
BUILD SUCCESSFUL (total time: 6 seconds)

这是困惑的代码行:

    public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter file name: ");
String fileName = br.readLine();
File file = new File(fileName);
if(file.length() == 0)
{
System.out.println("File is empty");
System.exit(1);
}

显然输入“input.txt”没有足够的信息或其他东西,我不确定。我删除了

    if(file.length() == 0)
{
System.out.println("File is empty");
System.exit(1);
}

为了得到我上面提到的错误,这就是我发现它甚至无法使用 anagram.java prgm 识别 src 中的文件的原因。

我的代码有什么问题吗?为什么它不读取文件或说文件不存在?

最佳答案

我敢说该文件位于 src 目录中 - 但我怀疑那不是程序的当前工作目录。要检查这一点,请运行以下代码:

System.out.println(new File(".").getAbsolutePath());

选项:

  • 指定绝对文件名
  • 指定一个相对文件名,该文件名会考虑您运行此文件的位置
  • 将文件捆绑为资源并使用 Class.getResourceAsStream 或类似内容

请注意,这与 BufferedReader 无关 - 您正在从 System.in 读取文本,没有任何问题。

关于java - FileInputStream 找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368041/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com