【发布时间】:2013-03-12 17:28:51
【问题描述】:
我正在用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 中的文件的方法。
我的代码有什么问题?为什么它不读取文件或说它不存在?
【问题讨论】:
-
当你有标签时,你不必在标题中指定JAVA。
-
您必须提供文件的完整路径。在 Windows 中,这将是 C:\directory\subdirectory\input.txt
-
您是否尝试过指定完整路径?如果你从 bin 开始你的程序,它不知道在哪里寻找文件。
-
您发布的代码不会引发该异常。再看看堆栈跟踪。
-
@GilbertLeBlanc 不,您不必提供完整路径,但如果您不提供,则名称必须与当前工作目录相关。