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

    [Java]Scrittura su file giusta???

    Ciao a tutti ho questo codice:
    codice:
    import java.io.*;
    
    public class Ese2{
        public static void main(String[] args) throws IOException{
            File newFile=new File("PEse2.txt");
            String stringa="Prova di scrittura 1-2-4";
            char[] scoStringa=new char[stringa.length()];
            for(int i=0;i<stringa.length();i++){
                scoStringa[i]=stringa.charAt(i);
                System.out.print(scoStringa[i]);
            }
            FileWriter wri=new FileWriter(newFile);
            int c;
            for(int k=0;k<stringa.length();k++){
                c=scoStringa[k];
                wri.write(c);
            }
            wri.close();
        }
    }
    Funziona alla perfezione ma siccome l'ho fatto da solo e nei prog. che scrivono su file li vedo sempre molto più complicati mi chiedevo se anche il mio fosse altrettanto valido!!!
    GRazie!!!
    Ci provo...e ci riesco!!!
    http://kings.altervista.org

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Se hai raggiunto correttamente il tuo scopo non c'è problema.

    ciao

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da keratox
    Se hai raggiunto correttamente il tuo scopo non c'è problema.

    ciao
    Si, pero fatto cosi è piuttosto inefficiente: non serve estrarre ogni singolo carattere dalla stringa per scriverlo, esiste anche il metodo write(String str, int off, int len) per scriere porzioni di stringa e poi è utile utilizzare un meccanismo di bufferizzazione per limitare gli accessi al disco:

    Writer out = new BufferedWriter(new FileWriter(newFile));


  4. #4
    Originariamente inviato da anx721
    Si, pero fatto cosi è piuttosto inefficiente: non serve estrarre ogni singolo carattere dalla stringa per scriverlo, esiste anche il metodo write(String str, int off, int len) per scriere porzioni di stringa e poi è utile utilizzare un meccanismo di bufferizzazione per limitare gli accessi al disco:

    Writer out = new BufferedWriter(new FileWriter(newFile));

    non capisco esattamente a cosa serve quello che mi hai appena scritto me lo spieghi???
    Ci provo...e ci riesco!!!
    http://kings.altervista.org

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Dalle API di java:

    Write text to a character-output stream, buffering characters so as to provide for the efficient writing of single characters, arrays, and strings.

    Ovvero, questa classe fornisce un meccanismo di buffering: quando invochi il metodo write(...) non è detto che ciò che passi come argomento venga immediatamente scritto nel file sul disco, viene invece bufferizzato, cioè memorizzato in un buffer, un array che è in memoria. Quando il buffer è riempito avvine effettivamente la scrittura su disco. Se per esempio invochi write per 10 volte scrivendo ogni volta 10 caratteri, senza il buffer accedi 10 volte al disco. Se usi il buffer i caratteri vengono pian piano accumulati in un array in memoria. Quando il buffer è pieno allora avviene la scrittura vera e propria: cosi al disco ci accedi una sola volta. Ovviamente puoi anche forzare la scrittura immediata di ciò che è nel buffer, basta usare il metodo flush.

    Ovviamente se devi scivere una sola stringa su un file una sola volta il buffer non fa differenza, ma per operazioni piu consistenti è sempre meglio utilizzare un BufferedWriter,


  6. #6
    Grazie capito alla perfezione!!!
    Ci provo...e ci riesco!!!
    http://kings.altervista.org

  7. #7
    solo x informazione:
    il codice seguente

    char[] scoStringa=new char[stringa.length()];
    for(int i=0;i<stringa.length();i++){
    scoStringa[i]=stringa.charAt(i);
    System.out.print(scoStringa[i]);
    }

    puó essere sostituito da questa riga:
    char[] scoStringa = stringa.toCharArray()
    Fede

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.