无法在没有错误处理的情况下初始化文件数组,但是它不会让我使用它。

时间:2018-03-18 22:24:14

标签: java file java.util.scanner

我是Java新手。在我的课程中,我们必须使用Scanner对象输入现有文件。

import java.io.*;
import java.util.Scanner;

public class InputFile {
public static void main(String[] args) {
Scanner inFile;

public class InputFile {
  public static void main(String[] args) {
    Scanner inFile = new Scanner(new File("artwork_info.txt"));
    int quantity = new Integer(inFile.nextLine());
  }
}

这给了“我未报告的异常FileNotFoundException”。

try {
  inFile = new Scanner(new File("info.txt"));
} catch (FileNotFoundException e) {
  System.out.println("Try Again");
}
int quantity = new Integer(inFile.nextLine());

然后我收到错误,可能没有初始化inFile。

我走过This question的步骤,文件名是正确的,仍然是同样的问题。有任何想法吗?

2 个答案:

答案 0 :(得分:1)

第一种方式:添加throws

public static void main(String[] args) throws FileNotFoundException {

第二种方式:将int quantity = ...行(和后续语句)放在try块中:

try {
  inFile = new Scanner(new File("info.txt"));
  int quantity = new Integer(inFile.nextLine());
  // ...
} catch (FileNotFoundException e) {
  // ...
}

第一种方式比第二种方式更好,如果你实际上不会做任何事情"有趣"但有例外,因为它不会不必要地使用inFile缩进代码。

第三种方式:

Scanner inFile;
try {
  inFile = new Scanner(new File("info.txt"));
} catch (FileNotFoundException e) {
  System.out.println("Try Again");
  return;
}

int quantity = new Integer(inFile.nextLine());

答案 1 :(得分:0)

您正在直接访问该文件,这意味着您的Java文件必须在 artwork_info.txt 所在的同一位置工作,如果您将此文件放在嵌套目录中,那么您将获得 FileNotFoundException异常即可。 因此,如果 txt 文件位于文件夹中,则必须提供文件夹名称>>

您已用作

Scanner inFile = new Scanner(new File("artwork_info.txt"));

将其替换为

Scanner inFile = new Scanner(new File("YourFolderPath\artwork_info.txt"));

在你的情况下,你得到 FileNotFoundException ,这意味着你的程序无法检测到你提供的文件,这意味着它明显存在 FileName ExtentionName 或 NestedDirectory

尝试解决这个问题,你可以摆脱它,Gud Luck !!