Java 无法读取工作目录中的文件

Java 无法读取工作目录中的文件,java,io,Java,Io,我正在学习java的基本I/O,下面的示例来自。程序将流式处理FileNotFound异常。我将文件放在工作目录下,并且我还尝试使用绝对文件路径,结果仍然相同。我使用Eclipse来编写代码。是什么导致了这种异常?谢谢 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyBytes { public static voi

我正在学习java的基本I/O,下面的示例来自。程序将流式处理FileNotFound异常。我将文件放在工作目录下,并且我还尝试使用绝对文件路径,结果仍然相同。我使用Eclipse来编写代码。是什么导致了这种异常?谢谢

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

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

        FileInputStream in = null;
        FileOutputStream out = null;

        try {
            in = new FileInputStream("xanadu.txt");
            out = new FileOutputStream("outagain.txt");
            int c;

            while ((c = in.read()) != -1) {
                out.write(c);
            }
        } finally {
            if (in != null) {
                in.close();
            }
            if (out != null) {
                out.close();
            }
        }
    }
}
将xanadu.txt文件放在项目目录中,FileNotFoundException将消失


FileInputStream需要一个现有的输入文件。

代码可能没有从您期望的路径执行

您应该为此使用主文件夹。C:\Users\在windows和/home/在linux上。你可以在那里创建一个文件夹来存放你的文件

要获取主目录,可以使用以下命令

System.getProperty("user.dir")
另一个解决方案是将文件打包到JAR中

如果您想调试您的问题,您可以像这样获取当前目录

<Your Class>.class.getProtectionDomain().getCodeSource().getLocation()

有很多事情会导致这种异常。以下是一些可以尝试的事情:

-使用isFile方法验证Xanadu.txt是否为文件。如果返回false,则您知道问题所在

-尝试将文件放置在项目目录中


-鉴于您已经尝试使用绝对文件路径,我还将确保您的程序具有查看和写入该文件的权限。要检查eclipse是否具有访问文件属性的权限

错误消息是否包含未找到的文件的完整路径?。。。你能分享stacktrace吗?…你真的有一个名为xanadu.txt的文件吗?要想知道Java在哪里查找xanadu.txt,你可能需要调用这样的代码:System.out.printlnfile.getAbsolutePath,只要你把xanadu.txt包装成一个文件,像这样:new Filexanadu.txt.As@ifly6说我使用System.out.printlnfile.getAbsolutePath检查程序在哪里查找文件,结果发现路径与我的文件所在的位置相同。isFile返回false,但这是一个只有两行字符的.txt文件,我不知道为什么这不被认为是正常的file@Gbldgett它返回false。如果Eclipse没有读取文件的权限,我会得到什么样的异常?这是我的错,我把它命名为xanadu.txt。非常感谢你!