2011-11-14 79 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”,导致运行时异常。