IOException问题

这段代码中为什么我输入了一个在同目录下的文件名但确被抛入找不到文件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项目的根目录下

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

【以下回答由 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);
  1. 确保文件存在:
  2. 在打开文件之前,首先检查文件是否存在。可以使用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);
}

如果以上方法都没有解决问题,可能还有其他原因导致文件找不到的异常。可以进一步检查代码逻辑,或者查看完整的堆栈跟踪信息来定位问题。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^