【发布时间】:2013-04-13 18:38:25
【问题描述】:
Scanner read=new Scanner(file);
此语句中出现“FileNotFoundException”异常。
import java.util.*;
import java.io.*;
public class shoppingList {
public static void main(String []args)throws IOException {
File file=new File("MyList.txt");
try {
if(file.exists()==false)
throw new FileNotFoundException("the file input doesn't exist");
}
catch(FileNotFoundException e){System.out.print(e.getMessage());}
//I tried handling the exception but it didn't work
Scanner read=new Scanner(file);
File outfile=new File("MyReceipt.txt");
FileOutputStream fos=new FileOutputStream(outfile);
PrintWriter output=new PrintWriter(fos);
while(read.hasNext()) {
String item=read.next();
double price=read.nextDouble();
String status=read.next();
output.println("My Receipt: ");
output.println("--------------------");
if(status.equals("Done")==true)
output.println(item+" "+price);
double total=0;
total+=price;
output.println("--------------------");
output.println("total= "+total);
}
read.close();
output.close();
}
}
【问题讨论】:
-
好吧,您运行程序的地方不存在该文件。这就是你得到错误的原因。为了确保您的文件所在的路径,请注释
main方法中的所有代码并添加此new File("something.txt").createNewFile();,运行它,您将看到这个新文件已创建(以及您应该放置 MyList.txt 文件)。 -
@LuiggiMendoza - 这是个好主意。或者,OP 应该尝试
System.out.println(new File("MyList.txt").getAbsolutePath());来调试程序在哪里寻找文件。 -
@sgp15 如果 MyList.txt 文件不存在,它将不起作用...
-
@LuiggiMendoza -
File不需要存在实际文件。它只是一个抽象,不像FileInputStream或FileOutStream需要文件存在。我也测试过。
标签: java file exception exception-handling