2012-05-04 51 views
-3
/** 
* @(#)b.java 
* 
* 
* @author 
* @version 1.00 2012/5/4 
*/ 
import java.util.*; 
import java.io.*; 
import java.*; 

public class b { 


static void lireBddParcs(String nomFichier) throws IOException 
{ 
    LinkedHashMap parcMap = new LinkedHashMap<Parc,Collection<Manege>>(); 


    int n = 0; 
    boolean existeFichier = true; 

    FileReader fr = null; 

    try 
    { 
     fr = new FileReader (nomFichier); 
    } 

    catch(java.io.FileNotFoundException erreur) 
    { 
     System.out.println("Probleme rencontree a l'ouverture du fichier" + nomFichier); 
     existeFichier = false; 
    } 

    if (existeFichier) 
    { 
     BufferedReader entree = new BufferedReader(fr); 
     boolean finFichier = false; 

       while(!finFichier) 
       { 
       String[] line = entree.readLine().split("/t");; 
       Parc p = new Parc(line[0], line[1], line[2]); 


        if (line == null) 
        { 
         finFichier = true ; 
        } 

        else 
        { 
         parcMap.put(p, null); 
        } 

       } 
        entree.close(); 

    } 


} 


    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) 
    { 
     lireBddParcs("parcs.txt"); 

    } 
} 

這裏的文本文件解析的文本文件,以填補一個HashMap

Great America Chicago Illinois 
Magic mountain Los Ageles Californie 
Six Flags over Georgia Atlanta Georgie 
Darien Lake Buffalo New York 
La Ronde Montreal Quebec 
The Great Escape Lake Georges New York 
Six Flags New Orleans New Orleans Louisiane 
Elitch Gardens Denver Colorado 
Six Flags over Texas Arlington Texas 
Six Flags New England Springfield Massachusetts 
Six Flags America Washington D.C. 
Great Adventure Jackson New Jersey 

下面的內容就是我得到的錯誤:

error: unreported exception IOException; must be caught or declared to be thrown 
+0

異常在線程 「主要」 java.lang.ArrayIndexOutOfBoundsException:1 \t在b.lireBddParcs(b.java:54) \t在b.main(b.java :101) – Questions

+0

所以'split'沒有返回至少有3個元素的數組。那麼你應該試着理解爲什麼。顯然,你使用「/ t」作爲分隔符。我想你的意思是「\ t」。 – tonio

+0

異常線程 「main」 顯示java.lang.NullPointerException \t在b.lireBddParcs(b.java:53) \t在b.main(b.java:101) – Questions

回答

2

你的方法lireBddParcs被聲明爲拋出一個IOException,所以你的代碼不能編譯,因爲你的main方法沒有處理它。你的目的,你會發現它簡單到只需添加throwsmain方法,以及:

public static void main(String[] args) throws IOException { ... } 

Alternatievly,你可以環繞調用lireBddParcstry/catch聲明和地方記錄異常。