-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

您传递的是文件名 String 而不是 File 对象本身,因此您的 Scanner 正在“扫描”。通过首先从文件字符串创建一个文件,然后将其传递给扫描仪来解决这个问题。

所以不是,

Scanner scan = new Scanner(nomFichier)

反而

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

下次,请根据我们的要求对您的问题进行修改。我们是志愿者,您有责任不让理解和回答您的问题变得不必要地困难。

于 2012-05-04T22:46:13.480 回答