Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
系统找不到java中指定的文件_Java_File - Fatal编程技术网

系统找不到java中指定的文件

系统找不到java中指定的文件,java,file,Java,File,我正在制作一个打开和读取文件的程序。 这是我的代码: import java.io.*; public class FileRead{ public static void main(String[] args){ try{ File file = new File("hello.txt"); System.out.println(file.getCanonicalPath()); FileInpu

我正在制作一个打开和读取文件的程序。 这是我的代码:

import java.io.*;

public class FileRead{
    public static void main(String[] args){
        try{
            File file = new File("hello.txt");
            System.out.println(file.getCanonicalPath());
            FileInputStream ft = new FileInputStream(file);

            DataInputStream in = new DataInputStream(ft);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strline;

            while((strline = br.readLine()) != null){
                System.out.println(strline);
            }
            in.close();
        }catch(Exception e){
            System.err.println("Error: " + e.getMessage());
        }
    }
}
但当我运行时,会出现以下错误:

C:\Users\User\Documents\Workspace\FileRead\hello.txt
Error: hello.txt (The system cannot find the file specified)
my
FileRead.java
hello.txt
位于以下目录中的同一目录中:

C:\Users\User\Documents\Workspace\FileRead

我想知道我做错了什么?

尝试通过调用以下命令列出目录中所有文件的名称:

File file = new File(".");
for(String fileNames : file.list()) System.out.println(fileNames);

然后查看是否可以在列表中找到文件。

您需要提供文件所在位置的绝对路径名

        File file = new File("C:\\Users\\User\\Documents\\Workspace\\FileRead\\hello.txt");

我已经复制了你的代码,它运行良好


我怀疑您只是在hello.txt的实际文件名中遇到了一些问题,或者您在错误的目录中运行。请考虑用Eng.Fuad < /P> < P >的方法进行验证。你是如何运行这个程序的?p>
运行的不是java文件,而是通过编译java代码创建的.class文件。您需要指定user1420750所说的绝对路径,或者指定到
System.getProperty(“user.dir”)
目录的相对路径。这应该是工作目录或运行java命令的目录。

在IDE中右键单击要读取的文件并选择“复制路径” 然后将其粘贴到代码中


请注意,windows隐藏了文件扩展名,因此,如果您创建一个文本文件“myfile.txt”,当您运行jar时,它实际上可能会保存为“myfile.txt.txt”

,您的主类本身将变为args[0],文件名紧跟其后


我也有同样的问题:当提供eclipse的绝对路径时,我可以找到我的文件(因为我将该文件称为args[0])。然而,当我从jar运行同一个类时,它试图定位我的主类——这是我想到应该从args[1]读取我的文件的时候。一般来说,只要在文件构造函数中声明文件名,就意味着该文件与java文件位于同一目录中。但是,当使用NetBeans和Eclipse之类的IDE时,即不是这样,您必须将文件保存在项目文件夹目录中。因此,我认为检查该选项将解决您的问题。

首先创建与您指定的路径相同的文件夹。然后创建文件

File dir = new File("C:\\USER\\Semple_file\\");
File file = new File("C:\\USER\\Semple_file\\abc.txt");

if(!file.exists())
{
    dir.mkdir();
    file.createNewFile();
    System.out.println("File,Folder Created.);
}

谢谢Adrian,我的hello.txt在另一个目录/src中,谢谢大家的回答我也遇到了同样的问题,我更改了目录'cd Desktop\MyProject',然后它就被修复了。如果你想阅读文本,请不要使用DataInputStream,这会让人困惑而不是有用。在windows系统中,有时会发生的情况是。。您关闭了“显示文件扩展名”功能,并尝试将文件命名为xyz.txt。它将创建一个名为xyz.txt.txt的文件,因此您的代码将无法找到该文件,但为什么我们需要一个
内部
新文件
params@JoelMin?我不是100%确定,但我假设它与unix
类似,这意味着当前目录这个答案有助于调试问题并找到根本原因。