Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2015
    Messaggi
    5
    ok grazie mille...in realtà il concetto a furia di ripetere e fare tentativi l'ho elaborato,ma ad esempio per quale motivo questo semplice programma per copiare un file di testo in un altro file di testo,funge nel leggere da file (provato con un println nel ciclo do-while) ma non scrive assolutamente nulla nel file di output?
    non è giusto usare gli stream di caratteri?
    se la logica che ho usato per le classi reader è uguale a quella delle classi stream writer,perchè uno funge e l'altro no?
    di seguito il listato:

    public class NewClass {
    public static void main(String [] Args) throws IOException{
    String stringa;
    try{
    InputStreamReader isr = new FileReader("/home/frenz/Scrivania/file");
    BufferedReader br = new BufferedReader(isr);
    OutputStreamWriter osw = new FileWriter("/home/frenz/Scrivania/out");
    BufferedWriter bw = new BufferedWriter(osw);
    PrintWriter pw = new PrintWriter(bw); /* aggiunto dopo ma senza miglioramenti*/
    do{
    pw.print(br.readLine()); /* come sopra*/
    bw.write(br.readLine());
    }while (br.read()!= -1);


    }catch(FileNotFoundException ex) {
    System.out.println("file non esistente!");
    }

    }
    }

    Grazie mille per l'appoggio!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Frenza Visualizza il messaggio
    non è giusto usare gli stream di caratteri?
    Per copiare file pari pari, senza alcuna nozione sul contenuto, sarebbero meglio gli Stream (orientati ai byte) ... non i Reader/Writer (orientati ai caratteri).

    Comunque il tuo codice è sbagliato e per svariati motivi!
    - Se proprio si volesse usare readLine(), si dovrebbe testare il suo valore di ritorno. L'idioma tipico d'uso del readLine() è dentro un ciclo while nella cui espressione di test si assegna ad una variabile ed allo stesso tempo si testa per diverso da null.
    - Se anche usi readLine(), dovresti scrivere esplicitamente un newline (nel tuo codice i newline li perdi!)
    - quel br.read()!= -1 non ha senso messo lì così
    - cosa importantissima, mancano i close, che vanno sempre fatti (anche quando una lettura/scrittura lancia una eccezione).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.