这段代码中为什么我输入了一个在同目录下的文件名但确被抛入找不到文件exception?
Please enter a file name: temptest.txt
```java
java.io.FileNotFoundException: temptest.txt (系统找不到指定的文件。)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:158)
at java.base/java.util.Scanner.<init>(Scanner.java:645)
at TemperatureConversion.main(TemperatureConversion.java:198)
```java
else if (option == 2) {
try {
String fileName;
in = new Scanner(System.in);
System.out.print("Please enter a file name: ");
fileName = in.next();
File inputFile = new File(fileName);
in = new Scanner(inputFile);
double[] temps = new double[0];
char[] scales = new char[0];
char[] newScales = new char[0];
int i = 0, j = 0, k = 0;
while(in.hasNextDouble()){
temps[i] = in.nextDouble();
i++;
}
in.close();
in = new Scanner(inputFile);
while (in.hasNext()){
scales[j]=in.next().charAt(0);
in.next();
j++;
}
in.close();
in = new Scanner(inputFile);
while(in.hasNext()){
in.next();
newScales[k] = in.next().charAt(0);
k++;
}
in.close();
TemperatureConversion conversion = new TemperatureConversion();
double[] newTemps = new double[0];
for(int a = 0; a <= i; a++){
newTemps[a] = conversion.doConversion(temps[a],scales[a],newScales[a]);
if (newTemps[a] == 0){
System.out.println("error invalid original scale specified " + scales[a]);
}else{
System.out.println(temps[a]+""+ scales[a] + " is " + newTemps[a] + newScales[a]);
}
}
}catch (IOException exception){
exception.printStackTrace();
}
写全路径。输入路径的时候用左斜杠,参考如下:
E:/temp/dist/temptest.txt
或者,把temptest.txt放在你的JAVA项目的根目录下
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!【以下回答由 GPT 生成】
问题原因: 在代码中,出现了文件找不到的异常。这个异常通常是由于文件路径错误或者文件不存在导致的。
解决方法: 1. 确保文件路径正确: - 确保文件名和路径是正确的,可以使用绝对路径或者相对路径指定文件位置。 - 如果使用相对路径,确保当前工作目录正确。可以使用System.getProperty("user.dir")
来获取当前工作目录。
示例代码:
String fileName;
in = new Scanner(System.in);
System.out.print("Please enter a file name: ");
fileName = in.next();
// 使用绝对路径
// File inputFile = new File("C:\\path\\to\\temptest.txt");
// 或者使用相对路径
File inputFile = new File(fileName);
File.exists()
方法来检查文件是否存在。示例代码:
String fileName;
in = new Scanner(System.in);
System.out.print("Please enter a file name: ");
fileName = in.next();
File inputFile = new File(fileName);
if (!inputFile.exists()) {
System.out.println("File not found: " + fileName);
// 可以选择抛出自定义的异常或者给出错误提示
throw new FileNotFoundException("File not found: " + fileName);
}
如果以上方法都没有解决问题,可能还有其他原因导致文件找不到的异常。可以进一步检查代码逻辑,或者查看完整的堆栈跟踪信息来定位问题。
【相关推荐】