gpt4 book ai didi

java - 如何处理 FileNotFoundException?

转载 作者:行者123 更新时间:2023-12-02 06:53:31 25 4
gpt4 key购买 nike

我正在修改一个小应用程序以从文件中读取一些数字。到目前为止一切都运行良好,但现在我遇到了一个问题,我不知道如何有效地解决它。如果用户输入了错误的文件名(可能是无意的),JVM 将抛出 FileNotFoundException,我在调用方法中捕获了该异常。现在我想再给他(用户)两次尝试输入正确的文件名,但我不知道如何再次调用该方法,当我实际上位于下面的 catch block 时,该方法正在打开文件。我将在下面说明我的临时解决方案,但我不确定这是否是解决此问题的最有效/最优雅的方法:

//code omitted
int temp = 0;

while(true) {
filename = input.next();

try {
ex.fileOpen(filename);
}
catch(FileNotFoundException e) {
if(temp++ == 3) {
System.err.println("You have entered the filename three times consecutively wrongly");
return;
}
continue;
}
break;
}
//do some other stuff

input 是一个扫描器,它读取用户输入并将其分配给字符串变量文件名。 fileOpen 是一种获取文件名、打开文件、读取内容并将所有数字写入 vector 的方法。

因此,我非常感谢更有经验的 java 程序员的每一次支持。

问候汤姆

最佳答案

你可以使用这样的东西,

public class AppMain {

public static void main(String[] args) throws IOException {
String filePath = input.next();

InputStream is = getInputStream(filePath);
int temp = 0;

while(is == null && temp < 3){
filePath = input.next();
is = getInputStream(filePath);
temp++;
}

if(is == null){
System.err.println("You have entered the filename three times consecutively wrongly");
return;
}

.........
.........

}

private static InputStream getInputStream(String filePath){
InputStream is = null;

try{
is = new FileInputStream(filePath);
return is;
}catch (IOException ioException) {
return null;
}
}
}

关于java - 如何处理 FileNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com