Java中的文件读取错误

Java中的文件读取错误,java,Java,这就是代码: public class Main{ public static void main(String[] argv) throws IOException{ new Main().run(); } PrintWriter pw; Scanner sc; public void run() throws IOException{ sc = new Scanner(new File("input.txt")); int a=sc.nextInt

这就是代码:

public class Main{
  public static void main(String[] argv) throws IOException{
    new Main().run();
  }
  PrintWriter pw;
  Scanner sc;
  public void run() throws IOException{
    sc = new Scanner(new File("input.txt"));
    int a=sc.nextInt();
    pw = new PrintWriter(new File("output.txt"));
    pw.print(a*a);
    pw.close();
  }
}
错误:

Exception in thread "main" java.io.FileNotFoundException: input.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.util.Scanner.<init>(Unknown Source)
    at Main.run(Main.java:14)
    at Main.main(Main.java:8)
线程“main”java.io.FileNotFoundException:input.txt中的异常(系统找不到指定的文件) 在java.io.FileInputStream.open(本机方法) 位于java.io.FileInputStream。(未知源) 位于java.util.Scanner。(未知源) 运行(Main.java:14) Main.Main(Main.java:8) 我知道它找不到名为input.txt的文件,但是!我把那个文件放在主类所在的同一个目录中,那么会有什么问题呢?
p、 在cmd和eclipse上进行了尝试,都给出了相同的错误。

它与主类无关,它与启动Java程序的位置(即当前工作目录)有关

它是相对于

System.getProperty("user.dir")

您可以使用
System.out.println(System.getProperty(“user.dir”))
查看默认情况下Java在哪里查找文件。这很可能是您的项目文件夹。这就是如果不想指定绝对路径,您必须放置文件。

您可能需要指定文件的路径,您可以做的一件事是使用like测试文件的存在性和可读性

使用路径的示例可能是(对于Windows)-


提示:查看
file.getAbsolutePath()
返回的内容。我尝试了(新文件(System.getProperty(“user.dir”)+“\\output.txt”),但没有工作,我有什么问题吗?@XsergeiX只是说
newfile(“output.txt”)
已经这样做了。好吧,现在我发现它不仅仅在eclipse中工作,也许我需要更改权限或类似的东西?好吧,让我们检查一下,现在太晚了。+1将文件
input.txt
移动到该路径。它正试图读取该路径。或者使用最后一句明确指出完整的路径(或相对
。/input.txt
)路径。
File file = new File("input.txt");
if (!file.canRead()) {
    System.err.println(file.getCanonicalPath() + ": cannot be read");
    return;   
}
File file = new File("c:/mydir/input.txt");