-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>> ();
        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)
        {
            Scanner scan = new Scanner(nomFichier).useDelimiter("\t");        
            while (scan.hasNextLine())
            {        
                   String nom = scan.next();
                   String ville = scan.next();
                   String etat = scan.next();
                   Parc p = new Parc(nom, ville, etat);
                   parcMap.put(p, null);        
            }
            scan.close();        
        }
    }

        public static void main(String[] args)  throws IOException
        {
          lireBddParcs("parcs.txt");        
        }
    }

parc.txt には以下が含まれます。

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

私はこれを得る:

--------------------Configuration: <Default>--------------------
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:907)
    at java.util.Scanner.next(Scanner.java:1416)
    at b.lireBddParcs(b.java:54)
    at b.main(b.java:94)

私は 3 時間もの間、プログラムを修正しようとしてきました。そして、私は愚かです。プログラムのどこが悪いのかわからない!

4

1 に答える 1

0

File オブジェクト自体ではなく、ファイル名 String を渡しているため、スキャナーが「スキャン」しているのはそれだけです。最初にファイル文字列からファイルを作成し、それをスキャナーに渡すことで修正します。

そうではありません、

Scanner scan = new Scanner(nomFichier)

むしろ

Scanner scan = new Scanner(new File(nomFichier))

次回は、私たちがリクエストした質問を編集してください。私たちはボランティアであり、質問の理解と回答を不必要に難しくしないことは、あなたの責任です。

于 2012-05-04T22:46:13.480 に答える