Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    errore in esecuzione per lettura da file

    Premetto che sono una novizia e sto imparando da autodidatta.
    Ho implementato il seguente main:
    Codice PHP:
      public static void main(String[] a)
      {

        
    // Lettura dati da tastiera
        
    Lettore tastiera Lettore.tastiera;
        
    Scrittore video Scrittore.video;

        
    //Lettura da file
           
    String nomeFile="C:\\Users\\Roberto\\Documents\\NetBeansProjects\\TesiBrioni\\src\\tesibrioni\\istanza.txt";
           
    Istanza ist=new Istanza(nomeFile);
           
    int nNodi=ist.getNNodi();
           
    int nDip=ist.getNDip();
           
    int nGG=ist.getNGG();
           
    double [] asc ist.getAscisse();
           
    double [] ord ist.getOrdinate();
           
    video.print("Numero nodi:");
           
    video.println(nNodi);
           
    video.print("Numero dipendenti:");
           
    video.println(nDip);
           
    video.print("Numero giorni lavorativi:");
           
    video.println(nGG);
           for(
    int pos 0pos nNodipos++)
         {
           
    video.print("Ascissa:");
           
    video.println(asc[pos]);
           
    video.print("Ordinata:");
           
    video.println(ord[pos]);
         } 
    e
    Codice PHP:
    public class Istanza {
       
    int nNodi;
       
    int nDip;
       
    int nGG;
       
    double [] asc;
       
    double [] ord;
       
    double [][] distanze;
       
    boolean coordinate=true;
       
    String nomeFile="";

        
        public 
    Istanza(String file)
       {
           
    nomeFile=file;
           
    Lettore istanza=new Lettore(file);
           
    int nRighe=istanza.contaRighe();

           
    //Lettura dati

           
    for(int i=1i<nRighe;i++)
           {
               
    String riga=istanza.leggiRiga();

               if(
    i==3)
               {
                   
    String dimensione=istanza.leggiRiga();
                   
    i++;
                   
    StringTokenizer tok=new StringTokenizer(dimensione);
                   
    tok.nextToken();
                   
    tok.nextToken();
                   
    nNodi Integer.parseInt(tok.nextToken());
               }
               else if(
    i==4)
               {
                   
    String dipendenti=istanza.leggiRiga();
                   
    i++;
                   
    StringTokenizer tok=new StringTokenizer(dipendenti);
                   
    tok.nextToken();
                   
    tok.nextToken();
                   
    nDip Integer.parseInt(tok.nextToken());
               }
               else if(
    i==4)
               {
                   
    String giorni=istanza.leggiRiga();
                   
    i++;
                   
    StringTokenizer tok=new StringTokenizer(giorni);
                   
    tok.nextToken();
                   
    tok.nextToken();
                   
    nGG Integer.parseInt(tok.nextToken());
               }
               else if(
    riga.equals("NODE_COORD_SECTION :"))
               {
                   
    asc=new double[nNodi];
                   
    ord=new double[nNodi];
                   for(
    int j=0j<nNodi;j++)
                   {
                       
    String coord=istanza.leggiRiga();
                       
    i++;
                       
    StringTokenizer tok=new StringTokenizer(coord);
                       
    tok.nextToken();
                       
    double xDouble.parseDouble(tok.nextToken());
                       
    double y=Double.parseDouble(tok.nextToken());
                       
    asc[j]=x;
                       
    ord[j]=y;
                   }
               }


           }
           
    istanza.chiudi();
       } 
    più tutti i metodi per ottenere le informazioni. Quando mando in esecuzione ottengono questo messaggio:

    Exception in thread "main" java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenize r.java:332)
    at tesibrioni.Istanza.<init>(Istanza.java:43)
    at tesibrioni.Main.main(Main.java:42)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)


    e nulla di quello che avevo chiesto di visualizzare.
    Dove sbaglio? grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: errore in esecuzione per lettura da file

    Originariamente inviato da michela85cancro
    Quando mando in esecuzione ottengono questo messaggio:

    Exception in thread "main" java.util.NoSuchElementException
    Beh semplicemente vuol dire che in una invocazione di nextToken() non ha trovato un token. Nel tuo codice in effetti non hai mai verificato, prima del nextToken, se un token è disponibile o no .... semplicemente invochi direttamente nextToken(), alcuni token li ignori ... altri li prendi.
    Ma hai verificato che il contenuto di ciò che "tokenizzi" sia appropriato come numero di token (e come contenuto ... nei casi in cui fai i parseXXX)???

    Spiega qualcosa di più ... magari mostra il file (o solo un pezzo) che devi parsare, perché di più non saprei dirti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie, mi hai fatto capire la natura dell'errore e ho risolto da sola

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.