Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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 BufferedReader/FileReader即使使用try/catch也找不到正确的路径_Java - Fatal编程技术网

Java BufferedReader/FileReader即使使用try/catch也找不到正确的路径

Java BufferedReader/FileReader即使使用try/catch也找不到正确的路径,java,Java,我试图使用BufferedReader和FileReader读取文本文件,但我经常遇到以下问题: java.io.FileNotFoundException: dicomTagList.txt (The system cannot find the file specified)C:\temp\workspace\DICOMVALIDATE\dicomTagList.txt 当我将该文件放在正确的目录中,甚至能够在FileReader中使用getAbsolutePath()方法验证它时,我似乎

我试图使用BufferedReader和FileReader读取文本文件,但我经常遇到以下问题:

java.io.FileNotFoundException: dicomTagList.txt (The system cannot find the file specified)C:\temp\workspace\DICOMVALIDATE\dicomTagList.txt
当我将该文件放在正确的目录中,甚至能够在FileReader中使用getAbsolutePath()方法验证它时,我似乎无法找出为什么会发生这种情况

有人能告诉我为什么会这样吗

以下是我的代码片段:

public void readFromTextFile(File path) throws IOException
{
    try
    {
        System.out.println(dicomList.getAbsolutePath());
        String line;
        BufferedReader bReader = new BufferedReader(new FileReader(dicomList));
        while( (line = bReader.readLine()) != null)
        {
            System.out.println(line);
        }
            bReader.close();
        }
        catch(FileNotFoundException e)
        {
            System.err.print(e);
        }
        catch(IOException i)
        {
            System.err.print(i);
        }
    }

您确定文件确实存在吗?以下表达式将打印什么内容:

dicomList.exists();

在Java
Java.io.File
中,它只表示文件的路径,不一定是真正的文件。
这意味着您可以创建
File
对象,即使底层路径不存在。

您为什么使用
File
而不是Java.nio.File API?这是2015年,java.nio.file自2011年就存在了,也就是说,java 7…我使用java 6是因为我将要删除它的服务器上只安装了java 6,我没有sudo访问权限来更改,您可以使用您的JDK而不必是root,您知道…
file
是“文件和目录路径名的抽象表示。”.这并不意味着它一定存在。您可以使用
新文件(“/path/to/File.txt”).createNewFile()如果需要,可以创建文件。
File.getAbsolutePath()
方法所做的就是获取路径的绝对形式(而不是,例如,相对路径)。@ryekayo我用它作为一个例子,说明您希望创建一个尚不存在的
文件
,帮助说明它只是一个抽象。这应该是一个注释,所以这个建议发现了问题,我仍然得到了负分。谢谢我告诉过你,伙计,我应该听你的。答案不应该是问题。评论,直到你知道问题是什么,然后写一个答案。除非你确信这已经是问题所在。如果是这样的话,你不应该用问题来回答