我的代码有问题, User.txt 文件确实存在,我试图捕获异常,但是在我调用 readUser <后,此错误始终显示/ strong>功能。这是我的代码,如果可以,请帮帮我,谢谢
private static void readUser_(String fileName)
{
obj_User = null;
countUser_ = 0;
VectorClear_(V_User);
obj_User = new User[countObjectQuantity_(fileName)];
try {
File file = new File(fileName);
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine())
{
String inputLine = scanner.nextLine();
StringTokenizer st = new StringTokenizer(inputLine,DELIMITERS_);
Vector<String> temp= new Vector();
VectorClear_(temp);
while(st.hasMoreTokens())
{ temp.addElement(st.nextToken()); }
if(temp.size() == 0) return;
String id = temp.elementAt(0);
String password = temp.elementAt(1);
String status = temp.elementAt(2);
String contactNumber = temp.elementAt(3);
String firstName = temp.elementAt(4);
String lastName = temp.elementAt(5);
String email = temp.elementAt(6);
if(status.compareToIgnoreCase("admin")==0 )
{
//String adminLevel = temp.elementAt(7);
String staffId = temp.elementAt(7);
String staffIcNo = temp.elementAt(8);
obj_User[countUser_] = new Admin(id,password,contactNumber,firstName,lastName,email,/*adminLevel,*/staffId,staffIcNo);
V_User.addElement(obj_User[countUser_]);
countUser_++;
}
else if(status.compareToIgnoreCase("customer")==0 )
{
String gender = temp.elementAt(7);
Date dateOfBirth = convertStringToDate( temp.elementAt(8));
String address = temp.elementAt(9);
obj_User[countUser_] = new Customer(id,password,contactNumber,firstName,lastName,email,gender,dateOfBirth,address);
V_User.addElement(obj_User[countUser_]);
countUser_++;
}
}
scanner.close();
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
答案 0 :(得分:1)
此错误通常表示没有目录
工作目录中数据库,
如果存在,则其中没有 User.txt 文件。
您需要检查您的程序的工作目录(在运行时)
并查看此目录和此文件是否存在。显然它找不到它们。
在程序中添加此打印件并查看您的工作目录。
System.out.println("Working Directory = " + System.getProperty("user.dir"));
有关详细信息,您可能需要查看这些页面。
http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
答案 1 :(得分:1)
如果您尝试使用的路径是问题中提到的Database \ User.txt,则使用正斜杠('/')而不是反斜杠('\')可以解决问题。
所以路径是Database / User.txt。这是因为反斜杠是java中的特殊字符,如果必须使用它,则应该进行转义(即在其前面放置另一个反斜杠)。