Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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 扫描仪对象将不使用文件名。构造函数文件(File)未定义_Java - Fatal编程技术网

Java 扫描仪对象将不使用文件名。构造函数文件(File)未定义

Java 扫描仪对象将不使用文件名。构造函数文件(File)未定义,java,Java,我使用扫描仪来读取用户给出的文本文件的行。有一种方法可以从用户处获取文件名。我试图用另一种方法使用文件名,但得到了一个“构造函数文件(File)未定义”错误。我尽量简化代码,以避免文章过长 static File f = getUserFile(); public static File getUserFile() { //some code return userFile; } public static void readF

我使用扫描仪来读取用户给出的文本文件的行。有一种方法可以从用户处获取文件名。我试图用另一种方法使用文件名,但得到了一个“
构造函数文件(File)
未定义”错误。我尽量简化代码,以避免文章过长

static File f = getUserFile();
    
    public static File getUserFile() {
        //some code
        return userFile;
    }

    public static void readFile() {
        Scanner userFile = new Scanner(new File(f));
        //loop through text
    }
错误发生在初始化扫描仪的行上。
提前谢谢

正如错误消息中所说:

构造函数文件(File)未定义

这与
扫描仪
没有任何关系,它看起来就是这样,因为它在同一行上。如果按如下方式分隔行,错误可能会更清楚:

publicstaticvoidreadfile(){
文件文件=新文件(f);
扫描仪用户文件=新扫描仪(文件);
//循环浏览文本
}
现在错误将出现在
文件=…
行上


这里的问题是
f
已经是一个
文件
,您试图通过
文件
构造一个新的
文件
对象。但是
文件
没有定义这样的构造函数,因此出现了错误。它确实定义了一个,但这不是您使用的,也不是您可能想要的-
文件
是父目录,
字符串
是实际的文件名。

新文件(f)
应该是
f
谢谢!这非常有效。感谢您的洞察力和详细的回答,这不仅有助于解决问题,而且有助于澄清我为什么会遇到这些问题。@Rabbit71012不客气,不用说“谢谢”。事实上,这可能会被视为闲聊并被删除。Stackoverflow表示感谢的方式是向上投票(指向上的三角形)或接受答案(复选标记)。