我无法调用此函数来处理文本文件。 我尝试调用它但抛出异常。我尝试了各种方法,但迄今为止没有任何工作。
public static void spracujSubor () throws IOException {
File f = new File("test.txt");
Scanner sc = new Scanner(f);
try {
while(sc.hasNextLine()) {
String nazov = sc.next();
String model = sc.next();
double cena = sc.nextDouble();
Auto rep = new Auto(nazov, model,cena);
aPozicovna.aAuto.add(rep);
}
} catch(IOException ioe){
System.err.println(ioe);
}
sc.close();
}
答案 0 :(得分:0)
首先,如果您(至少)没有向我们展示异常消息,我们无法帮助您找出导致IOException
的原因。完整的堆栈跟踪是理想的,但是你帮忙的消息很多。
有多个地方可以抛出IOException
,包括:
在new Scanner(f)
中,如果文件不存在,不可读,路径名错误,还有其他几种情况。
在循环中对Scanner
对象的各种调用中,具体取决于您的文件语法。
在close()
电话中......理论上。
其中一些是在try-catch中。其他人在之前或之后。对于try catch中的情况,您将捕获异常,打印消息,然后继续进行,就好像什么都没发生一样。那很不好。这是一个更好的结构...... 没有压缩异常。
public static void spracujSubor () throws IOException {
File f = new File("test.txt");
try (Scanner sc = new Scanner(f)) {
while(sc.hasNextLine()) {
String nazov = sc.next();
String model = sc.next();
double cena = sc.nextDouble();
Auto rep = new Auto(nazov, model,cena);
aPozicovna.aAuto.add(rep);
}
}
}
请注意,由于Scanner
是Autocloseable
,因此当您退出try-with-resources时,它会自动关闭。