Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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-try-catch似乎导致FileNotFoundException?_Java - Fatal编程技术网

Java-try-catch似乎导致FileNotFoundException?

Java-try-catch似乎导致FileNotFoundException?,java,Java,我有一个代码块,它从用户那里获取一个数字和一个字符串。该字符串稍后用于从名为该字符串的文件中读入数据 Scanner scanner = new Scanner(System.in); System.out.print("Enter number: "); int number = scanner.nextInt(); if(number <= 1){ System.out.println("Number must be 2 or more."

我有一个代码块,它从用户那里获取一个数字和一个字符串。该字符串稍后用于从名为该字符串的文件中读入数据

Scanner scanner = new Scanner(System.in);
System.out.print("Enter number: ");
int number = scanner.nextInt();
if(number <= 1){
   System.out.println("Number must be 2 or more.");
   return;
   }
System.out.print("Enter the name of the text file: ");
String fileName = scanner.next();
即使我没有更改文件位置或代码的任何其他方面


发生这种情况的原因是什么?

试试看……Java中的catch块是有范围的。将以后需要使用的任何变量的声明移到try…catch块之外。通常,您希望在try…catch块中放入尽可能少的代码,所以这是一个很好的实践

例如:

String filename;
int number;
try{
    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter number: ");
    number = scanner.nextInt();
    if(number <= 1){
        System.out.println("Number must be 2 or more.");
        return;
    }
    System.out.print("Enter the name of the text file: ");
    fileName = scanner.next();
} catch(Exception e){
    System.out.println("An error occurred.");
    e.printStackTrace();
    return;
}
字符串文件名;
整数;
试一试{
扫描仪=新的扫描仪(System.in);
系统输出打印(“输入编号:”);
编号=scanner.nextInt();

如果(编号)您已更改代码的其他方面,否则为“其他”如果没有
fileName
变量,代码将无法编译。请将您的问题包括完整的源代码和完整的异常消息,特别是stacktrace。我不认为仅此代码就导致了
FileNotFoundException
。非常感谢您的建议。我已经解决了这个问题。
java.io.FileNotFoundException: null.txt (The system cannot find the file specified)
String filename;
int number;
try{
    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter number: ");
    number = scanner.nextInt();
    if(number <= 1){
        System.out.println("Number must be 2 or more.");
        return;
    }
    System.out.print("Enter the name of the text file: ");
    fileName = scanner.next();
} catch(Exception e){
    System.out.println("An error occurred.");
    e.printStackTrace();
    return;
}