2011-11-14 119 views
0

我處理文件問題。Java文件讀取有什麼問題?

IBM 7918 Ayse Durlanik 7600 Computer 
------------------------------------ 
Gama 2342 Mehmet Guzel 8300 Civil 
------------------------------------ 
Lafarge 3242 Ahmet Bilir 4700 Chemical 
------------------------------------ 
Intel 3255 Serhan Atmaca 9200 Electrical 
------------------------------------ 
Bilkent 3452 Fatma Guler 2500 Computer 
------------------------------------ 
Public 1020 Aysen Durmaz 1500 Mechanical 
------------------------------------ 
Havelsan 2454 Sule Dilbaz 2800 Electrical 
------------------------------------ 
Tai 3473 Fethi Oktam 3600 Computer 
------------------------------------ 
Nurol 4973 Ayhan Ak 4100 Civil 
------------------------------------ 
Pfizer 3000 Fusun Ot 2650 Chemical 
------------------------------------ 

這是文本文件,我不想讀這=

"------------------------------------ " 

這裏是方法:

Scanner scn = null; 
    File fp = new File("C:/Users/Efe/Desktop/engineers.txt"); 
    try { 
    scn = new Scanner(fp); 
    while (scn.hasNextLine()) { 

    { 
    if (!scn.next().equals("------------------------------------")) { 

    String comp = scn.next(); 
    int id = Integer.parseInt(scn.next()); 
    String name = scn.next(); 
    String surname = scn.next(); 
    double sal = Double.parseDouble(scn.next()); 
    String area = scn.next(); 
    Engineer e = new Engineer(comp, id, name, surname, sal, area); 
    list.add(e); 
    } 
    } 
    scn.close(); 
    } 

這是我得到一個異常的代碼在運行時:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: 
    For input string: "Ayse" at 
    java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 

什麼是wr與代碼?

回答

0

這是應用程序試圖將字符串轉換爲其中一種數字類型,但該字符串確實具有適當的格式進行轉換。

,你能否告訴進一步的「IBM 7918艾謝費裏德阿卡爾Durlanik 7600的電腦」

+0

如何編輯它? – snnlankrdsm

3

你關閉一...在該行

if (!scn.next().equals("------------------------------------")) { 

如果下一個標記是虛線,那麼它就會丟失。考慮將其分配給一個臨時變量。

在你的情況下,「IBM」丟失,comp == 7918parseInt被稱爲「Ayse」,導致運行時異常。