Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1

    Come salvare testo su FIle in java???

    Salve,

    finalmente sono riuscito a creare un file senza ERRORI.

    Ora arriva il difficile.

    Non riesco a stamparci dentro....

    Ossia mi crea il file, ma questo resta vuoto....
    ed ho provato in mille modi

    codice:
    import java.util.*;
    import java.io.*;
    
    public class StampaFile {
      public static void main(String[] args) {
     try 
     {
     PrintWriter pw = new PrintWriter (
     new BufferedWriter (new FileWrite("FileStampa.txt", true)));
    
    // inserisco i vari metodi che dovrebbero andare scritti sul file
      }
     catch (FileNotFoundException  ex){
         //Gestione eccezione es.
         ex.printStackTrace();
     }
     catch (IOException  ie){
         //Gestione eccezione es.
         ie.printStackTrace();
     }
     
    }
    
    }
    Ho provato a mettere

    codice:
    PrintWriter out = new PrintWriter(System.out, true);
     out.println("Hello, World");
    codice:
     
    pw.println("Ciao Mondo");
    codice:
    pw.write("Hello World");
    Il risultato è SEMPRE lo stesso...
    Mi crea il file, ma dentro è vuoto.
    Come risolvere il problema?

  2. #2
    dopo

    codice:
    pw.println("Ciao Mondo");
    hai chiamato il metodo:

    codice:
    pw.flush(); ?

    Trattandosi di un buffered writer, non viene scritto il testo, finché il buffer non è pieno o finchè non viene invocato il metodo flush().

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

    Re: Come salvare testo su FIle in java???

    Originariamente inviato da xxdavide84xx
    Come risolvere il problema?
    È buona norma fare sempre una close().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Già, se non erro poi il close() richiama automaticamente anche il metodo flush() (anche se è buona norma specificarlo sempre)

  5. #5
    Grazie, fini qui problema RISOLTO!
    Ora mi chiedo questo....
    se io eseguo per esempio questo
    codice:
    import java.util.*;
    import java.io.*;
    
    public class prova
    {
      public static void main(String[] args)
      {
        try
        {
          PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Testprova.txt", true)));
          for ( int i = 0; i < 5; i++)
          {
            pw.write("Ciao");
          }
          pw.close();
        }
        catch (FileNotFoundException ex)
        {
          //Gestione eccezione es.
          ex.printStackTrace();
        }
        catch (IOException ie)
        {
          //Gestione eccezione es.
          ie.printStackTrace();
        }
      }
    }
    e lo richiamo 2 volte da DOS facendo
    java -cp ./ prova
    mi scrive sempre sullo stesso file e quindi i Ciao in questione al posto che essere 5 diventano 10....
    Io vorrei che ogni volta che scrivo java -cp ./ java
    compaiono solo i 5 Ciao e che quindi il file venga sovrascritto o comunque cancellato prima di eseguire il programma...
    Che codice devo utilizzare?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Basta modificare questa riga di codice:
    codice:
    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Testprova.txt", true)));
    E mettere false oppure, più semplicemente, rimuovendo il true.

    Per queste domande, come già detto più e più volte, esiste la documentazione. E' inutile scrivere del codice senza nemmeno sapere quello che si sta scrivendo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Io mi sono letto Thinking Java, ma non trovo nel dettaglio queste cose, dove posso trovare la documentazione?

  8. #8
    Io mi sono letto "Thinking Java", ma non trovo nel dettaglio queste cose, dove posso trovare la documentazione?

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da xxdavide84xx
    Io mi sono letto "Thinking Java", ma non trovo nel dettaglio queste cose, dove posso trovare la documentazione?
    La documentazione di tutte le API di Java SE la trovi qui e se non vuoi doverla consultare online ti consiglio caldamente di scaricarla, vedi qui .
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Originariamente inviato da LeleFT
    Basta modificare questa riga di codice:
    codice:
    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Testprova.txt", true)));
    E mettere false oppure, più semplicemente, rimuovendo il true.

    Per queste domande, come già detto più e più volte, esiste la documentazione. E' inutile scrivere del codice senza nemmeno sapere quello che si sta scrivendo.


    Ciao.
    il problema è questo.
    se io tolgo TRUE, o comunque metto FALSE mi viene memorizzata solo 1 volta (esattamente l'ultima la stampa ricorsiva.

    Invece con TRUE viene stampato tutto bene.

    Non è possibile prima di questa opzione
    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Provaci.txt", true)));
    fare un
    se esiste già cancella "Provaci.txt"?

    oppure sotto
    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("Provaci.txt", true)));
    fare un
    cancella tutto il documento

    Purtroppo queste cose nelle librerie e in "Thinking Java" e "Java mattone su mattone" non le trovo ed è per questo che chiedo aiuto a voi ESPERTI nel forum, anche se so che a volte faccio domande per voi BANALI (e me ne dispiace)!!!

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.