2014-01-19 172 views
0

我的代碼有問題,User.txt文件確實存在,我試圖捕獲異常,但在我致電readUser函數後,此錯誤始終保持顯示。這是我的代碼,請幫助我,如果可以,謝謝java.io.FileNotFoundException:Database User.txt(系統找不到指定的路徑)

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

你能分享一些你的代碼嗎?例如,實際拋出異常的調用?另外,一個完整的堆棧跟蹤會很有幫助。 – Mureinik

+0

這似乎是不完整的信息。請提供更多信息。 –

+0

我已經把編輯的帖子 – Alladin

回答

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

+0

中的函數代碼編好了,你說的沒錯,工作目錄下沒有目錄數據庫。你能告訴我怎麼把它放在路上。謝謝 – Alladin

+0

@Alladinsaoudi只需創建它,並將其中的User.txt文件複製到其中。或者,如果User.txt當前存在於磁盤的其他位置,請讓程序從正確的位置讀取User.txt,而不是從此位置讀取。 –

1

如果你要使用的路徑是數據庫\ User.txt中提到的問題,然後用正斜槓(/)而不是反斜槓( '\')應該解決問題。

所以路徑是Database/User.txt。這是因爲反斜槓是java中的一個特殊字符,如果必須使用它,則應該轉義(即在它前面放置另一個反斜槓)。

+0

這當然假設文件夾數據庫位於您的類路徑中,並且文件User.txt確實存在。 – ucsunil

相關問題