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

    Stampare arraylist su un file html

    Salve,
    ho una arraylist di stringhe e vorrei stampare tutta la lista su un file html già creato che viene poi visualizzato da un JEditorPane.
    Quali classi devo usare per fare questo? Ci sto provando da un po': sono riuscito a leggere da file html mediante la classe InputStreamReader. Per scrivere, ho pensato, bisognerà usare la OutputStreamWriter!!
    Ma mentre la classe InputStreamReader chiede come parametro un InputStream, ottenibile facilmente mediante il metodo getPage().openStream() del JEditorPane, la classe OutputStreamWriter chiede un OutputStream e questo non ho la più pallida idea di come fare ad ottenerlo.
    Suggerimenti?
    Grazie

  2. #2
    Prova invece ad usare FileOutputStream, che è la classe che estende OutputStream.

    codice:
    File newFile = new File("percorso del file html");
    
    FileOutputStream fileOutputStream = new FileOutputStream(newFile.getAbsolutePath());

  3. #3
    Purtroppo non funziona con questo metodo. In pratica invece di scrivere la stringa sul file, me lo svuota completamente...
    Da che può dipendere?

  4. #4
    codice:
    fileOutputStream = new FileOutputStream(newFile.getAbsolutePath(), true);
    Il valore booleano a true, sta ad indicare che si deve andare in append, e non sovrascivere il contenuto.
    Ovviamente poi dovrai inserire il codice per scrivere la tua lista nel posto corretto della pagina html.

  5. #5
    no non voglio che scriva dopo. Voglio che sovrascriva. Il problema è che l'unica cosa che fa è cancellare il contenuto precedente del file. Cioè non scrive la mia lista

  6. #6
    no non voglio che scriva dopo. Voglio che sovrascriva. Il problema è che l'unica cosa che fa è cancellare il contenuto precedente del file. Cioè non scrive la mia lista

  7. #7
    Ma tu hai inserito il codice per far scrivere la tua lista??

    Posta il codice, che così guardiamo assieme.

  8. #8
    codice:
    FileOutputStream stream=new FileOutputStream(area.getPage().getFile(), true);
    OutputStreamWriter writer=new OutputStreamWriter(stream);
    						
    for (String str: strings){
    	writer.write(str);
    }
    L'arrayList è strings

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Originariamente inviato da stefanuzz199
    codice:
    FileOutputStream stream=new FileOutputStream(area.getPage().getFile(), true);
    OutputStreamWriter writer=new OutputStreamWriter(stream);
    						
    for (String str: strings){
    	writer.write(str);
    }
    L'arrayList è strings
    1) Non fai nessun flush()?
    2) Non chiudi il file dopo averlo scritto?

    Il flush() serve a forzare lo svuotamento dell'eventuale buffer intermezzo
    Il secondo va sempre fatto, altrimenti nessuno ti garantisce che qualcosa venga effettivamente scritto in un file; è la regola aurea del programmatore: tutti i file che si aprono, si chiudono anche.


    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

  10. #10
    quando utilizzi i file, conviene e bisogna utilizzare le funzioni di chiusura:
    codice:
    try {
       writer.flush();
       writer.close();
    }
    catch (IOException exception) { 			  
      System.out.println("IOException:"+exception.getMessage());
    }
    La funzione flush serve per forzare la scrittura del file, e la close, poi dato che hai aperto uno stream, è buona cosa chiuderlo.

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