0

我收到以下错误

java.io.FileNotFoundException: in.txt, (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileReader.<init>(Unknown Source)
    at FileTest.main(FileTest.java:50)

但是我确定我在 src、bin 和根目录下创建了一个 in.txt 文件。我还尝试在主要参数中指定完整目录,但仍然无法正常工作。为什么 Eclipse 不选择它?

import java.io.*;
public class FileTest {
    public static void main(String[] args) {

        try {
            String inFileName = args[0];
            String outFileName = args[1];
            BufferedReader ins = new BufferedReader(new FileReader(inFileName));
            BufferedReader con = new BufferedReader(new InputStreamReader(System.in));
            PrintWriter outs = new PrintWriter(new FileWriter(outFileName));

            String first = ins.readLine(); // read from file
            while (first != null) {
                System.out.print("Type in a word to follow " + first + ":");
                String second = con.readLine(); // read from console
                // append and write
                outs.println(first + ", " + second);
                first = ins.readLine(); // read from file
            }
            ins.close();
            outs.close();
        } catch (IOException ex) {
            ex.printStackTrace(System.err);
            System.exit(1);
        }

    }
}
4

7 回答 7

6

鉴于错误消息,我猜 Java 正在寻找文件名in.txt,,后面带有逗号。

于 2012-10-12T20:01:04.083 回答
2

默认情况下,Eclipse 会将工作目录设置为项目文件夹。如果您对设置进行了更改,您仍然可以通过这行简单的代码找到工作目录:

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

将您的文本文件放在打印的文件夹中,您应该没问题。

于 2012-10-12T20:02:40.977 回答
2

我获取了您的代码并使用以下命令行参数执行了它:

in.txt out.txt

它完全没有问题。检查你的命令行。

于 2012-10-12T20:02:57.983 回答
0

把它放在项目目录中,如果这不起作用,bin文件夹

于 2012-10-12T19:55:28.847 回答
0

打开“调试配置”并在“参数”选项卡下设置工作目录。相对路径将相对于工作目录。

于 2012-10-12T20:00:56.447 回答
0

我在 eclipse 中创建了一个新项目Learning,并将in.txt文件放在源目录中。我使用示例 java 文件进行了测试。

public static void main(String[] args) {
    File f = new File("a.txt");
    System.out.println(f.getAbsolutePath());
}

输出:

/home/bharathi/workspace/Learning/a.txt

它在项目根目录中查找。您可以将 in.txt 放在项目的根目录中,或者提供直到 source directory 的路径。

于 2012-10-12T20:10:52.060 回答
0

可能有两个问题:

  1. 在您的控制台中,显示带有“,”的错误检查->
    java.io.FileNotFoundException:in.txt,
    因此JVM可能会查找带有“,”的文件名

  2. 第二种情况可以,你的in.txt文件位置不对。检查它是否是项目的根。或主要路径。

这将解决这些类型的问题。

于 2014-08-29T08:48:11.817 回答