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

    Java - Stampa in un file

    Salve a tutti!
    Ho un piccolo problema. Sto lavorando con un file e devo elaborarlo e stampare alcuni "pezzi" di file in un nuovo file. Il file contiene in una riga una parola italiana e nella riga sotto la traduzione in inglese. Nel caso ci siano più traduzioni della stessa parola, devo scrivere nel nuovo file solo una traduzione. Il codice è pronto ed è il seguente :

    codice:
    import java.io.*;
    import java.util.Scanner;
    
    public class traduttore {
    
        public static void main(String[] args) throws FileNotFoundException, IOException {
            int c=0;
            int stringa;
            
            
        	FileReader file = new FileReader("nonso.txt");
            PrintWriter fout = null;
            try {
                fout = new PrintWriter (new FileWriter("test.txt"));
                }
            catch (IOException e)
                {
                System.out.println("Problemi nella CREAZIONE del file:");
                }
        		Scanner in = new Scanner(file);
                    
    			while (in.hasNext()) {
    				String line = in.nextLine();
                                    c=c+1;
                                    if (c%2==0)
                                    {
                                        String[] tokens= line.split("\\s");
                                        stringa=tokens[1].length();
                                        if (tokens[1].substring(stringa-1,stringa).equals("."))
                                            {
                                                fout.print(tokens[1].substring(0,stringa-1));
                                                //System.out.println(tokens[1].substring(0,stringa-1));
                                            }
                                        else
                                            {
                                                fout.print(tokens[1]);
                                               // System.out.println(tokens[1]);
                                            }
                                    }
                                    else
                                    {
                                        fout.print(line);
                                        //System.out.println(line);
                                    }
                            }
                            file.close();
    	 }
    }
    Il problema è che il secondo file "test" è vuoto.. Come mai? Dove ho sbagliato?

  2. #2
    io ci metto sempre un "flush" alla chiusura degli stream.

    il file lo crea correttamente? metti qualche stampa prima di scrivere sul file per vedere se le operazioni che fai sono corrette

  3. #3
    se non metti il flush prima della chiusura dello stream di output i dati non vengono copiati sul file e, di conseguenza, ti ritrovi il file vuoto.
    I miei esempi in Java qui: http://cdpjavaexamples.altervista.org/index.html

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.