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

    [Java] Lettura da file e scrittura su stdout

    Salve a tutti, stavo facendo degli esercizi sui file in Java, tuttavia trovo un problema che non capisco:

    codice:
    import java.io.*;
    import java.util.*;
    
    
    public class Files{
    
    
        public static void main(String[] args) throws FileNotFoundException {
    
    
              File f = new File("inferno.txt");
    
    
              if(f.exists()){
    
    
                Scanner s = new Scanner(f);
                while(s.hasNextLine())
                    System.out.print(s.nextLine());
                s.close();
              }
              else{
                System.out.println("File non trovato");
              }
        }
    }
    Mi dice che il File non esiste, tuttavia esiste.
    Il compilato si trova su un cartella di livello superiore a quella in cui è il codice e il file da accedere.
    Se al posto di:
    codice:
       File f = new File("inferno.txt");
    scrivo:
    codice:
       File f = new File("/src/inferno.txt");
    non cambia nulla

  2. #2
    Leggi questa discussione, dove c'era una situazione molto simile.
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  3. #3
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Leggi questa discussione, dove c'era una situazione molto simile.
    Ho letto la discussione e mi scuso se non ho controllato prima.
    Tuttavia...
    codice:
    import java.io.*;
    import java.util.*;
    
    
    public class Files{
    
    
        public static void main(String[] args) throws FileNotFoundException {
    
    
              File f = new File("inferno.txt");
    
    
              if(f.exists()){
              //  System.out.print("SONO QUI");
                Scanner s = new Scanner(f);
                while(s.hasNextLine())
                    System.out.print(s.nextLine());
                s.close();
              }
              else{
                System.out.println("File non trovato");
              }
        }
    
    
        public static void main2(String[] args) throws Exception{
    
    
              FileReader in = new FileReader("inferno.txt");
              BufferedReader b = new BufferedReader(in);
              String l;
              while((l = b.readLine()) != null){
                  System.out.print(l);
              }
    
    
              b.close();
    
    
        }
    
    
    
    
    }
    Se compilo utilizzando il main2 ottengo il risultato desiderato; tuttavia con Scanner la seguente linea:
    codice:
    while(s.hasNextLine())
    mi da false, quindi non viene mai eseguito.

    Inoltre, spostando il file su /src/ (e modificando come riportato nel primo messaggio) mi genera eccezione in entrambi i casi :/.
    P.S.: non uso nessun IDE, ma editor e linea di comando

  4. #4
    Quote Originariamente inviata da muletto99 Visualizza il messaggio
    Inoltre, spostando il file su /src/ (e modificando come riportato nel primo messaggio) mi genera eccezione in entrambi i casi :/.
    P.S.: non uso nessun IDE, ma editor e linea di comando
    Se non usi un IDE ma solo il "prompt dei comandi" a maggior ragione ha piena visione e controllo della directory corrente! Su Windows la directory "corrente" te la stampa chiaramente nel prompt. Siccome una specifica di file come "inferno.txt" è relativa direttamente alla directory corrente, la questione è semplice: la directory corrente è quella che contiene esattamente quel file? Se sì ti funziona, se no non ti funziona. Quale è il dubbio a riguardo?
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

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 © 2020 vBulletin Solutions, Inc. All rights reserved.