Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    37

    leggere file contemporaneamente

    salve ragazzi ho bisogno di un aiuto dovrei leggere 2 file contemporaneamente perche dovrei unirli cioe scriverein un file chiamato testout.txt dove dentro c'è la riga1 del primo file e riga 1 del secondo file e cosi via fino a che i file 1 e 2 non sono finiti io ho provato a farlo ma non funziona correttamente questo è il codice
    codice:
    import java.io.*;
     class Max1
    { public static void main(String args[]) throws IOException, FileNotFoundException
    { String s;
    String s1;
    FileReader fin = new FileReader("Test.txt");
    BufferedReader bufin = new BufferedReader (fin);
    FileReader fin1 = new FileReader("ba1.txt");
    BufferedReader bufin1 = new BufferedReader(fin1);
    FileWriter fout = new FileWriter ("Testoout.txt");
    BufferedWriter bufout = new BufferedWriter (fout);
    while((s=bufin.readLine())!=null)
    while((s1=bufin1.readLine())!=null)
    { 
         bufout.write(s);
         bufout.write(s1);
         bufout.newLine();
    //bufout.newLine();
    
    
    
    
    
    }
    
    
    
    bufout.close();
    }
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Re: leggere file contemporaneamente

    Originariamente inviato da bong88
    ma non funziona correttamente
    Cioè?
    Ci sono degli errori in compilazione?
    Ci sono delle eccezioni in esecuzione?
    Il risultato non è quello che ti aspetti?
    Cosa succede di scorretto?


    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

  3. #3

    Re: leggere file contemporaneamente

    Originariamente inviato da bong88
    codice:
    import java.io.*;
     class Max1
    { public static void main(String args[]) throws IOException, FileNotFoundException
    { String s;
    String s1;
    FileReader fin = new FileReader("Test.txt");
    BufferedReader bufin = new BufferedReader (fin);
    FileReader fin1 = new FileReader("ba1.txt");
    BufferedReader bufin1 = new BufferedReader(fin1);
    FileWriter fout = new FileWriter ("Testoout.txt");
    BufferedWriter bufout = new BufferedWriter (fout);
    while((s=bufin.readLine())!=null)
    while((s1=bufin1.readLine())!=null)
    { 
         bufout.write(s);
         bufout.write(s1);
         bufout.newLine();
    //bufout.newLine();
    }
    bufout.close();
    }
    }
    Ammesso che i due files abbiano sempre la medesima dimensione e lunghezza ti basta fare direttamente un ciclo nel quale vai a leggere ogni volta due righe e le scrivi come un'unica riga nel file di output.

    Inoltre dopo ogni write() ti conviene chiamare un flush().
    Infine devi chiudere anche i i flussi di lettura aperti con i due files di input.

    Per la scrittura nel file di output ti consiglio di usare un oggetto della classe PrintStream.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    37
    io ho 2 file

    ba1.txt che contiene e il file Test.txt che contiene
    | massimo | |A02439|
    | francesco| |A02438|
    |___ luca___| |A02437|
    |______|



    I risultato che vorrei avere sarebbe questo

    A02439 massimo
    A02438 francesco
    A02437 luca


    a me invece viene questo

    A02439 massimo
    A02439 francesco
    A02439 luca

    non scorre test.txt

  5. #5
    Originariamente inviato da bong88
    io ho 2 file

    ba1.txt che contiene e il file Test.txt che contiene
    | massimo | |A02439|
    | francesco| |A02438|
    |___ luca___| |A02437|
    |______|



    I risultato che vorrei avere sarebbe questo

    A02439 massimo
    A02438 francesco
    A02437 luca


    a me invece viene questo

    A02439 massimo
    A02439 francesco
    A02439 luca

    non scorre test.txt
    Come già ti ho detto ti basta fare un solo ciclo:
    codice:
    while( ((s = bufin.readLine()) != null) &&  ((s1 = bufin1.readLine()) != null) ){
    ...
    }
    Inoltre per la scrittura nel file di output ti consiglio di usare un oggetto della classe PrintStream che ti ho linkato sopra.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    37
    grazie mille adesso funziona

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.