java.io.FileNotFoundException:Database \ User.txt(系统找不到指定的路径)

时间:2014-01-19 10:23:30

标签: java read-write

我的代码有问题, 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();
            }
}

2 个答案:

答案 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中的特殊字符,如果必须使用它,则应该进行转义(即在其前面放置另一个反斜杠)。