ho un problema con un altro esercizio: questa volta riguarda la concatenazione dei file.
guardate questa classe:
codice:
package file;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;
public class CatFiles {
public CatFiles(String fileInput) throws FileNotFoundException
{
reader = new FileReader(fileInput);
}
public void concatenaFile(String nomeFile) throws FileNotFoundException
{
out = new PrintWriter("ConcatenazioneRisultato.txt");
Scanner in = new Scanner(reader);
while(in.hasNextLine())
{
String riga = in.nextLine();
out.println(riga);
}
FileReader file = new FileReader(nomeFile);
in = new Scanner(file);
while(in.hasNextLine())
{
String riga = in.nextLine();
out.println(riga);
}
out.close();
}
private FileReader reader;
private PrintWriter out;
}
nel costruttore si specifica il nome del primo file che si vuole concatenare (il file origine), mentre nel metodo concatenaFile si specifica il file successivo da unire. il problema è questo: se chiamo il metodo una prima volta, il programma funziona correttamente, se poi lo chiamo ancora il file risultato presenta solo i caratteri del file specificato nel metodo, mentre tutto il resto non compare. potete spiegarmi perchè? cosa sbaglio? in pratica a partire dal file origine del costruttore vorrei poter unire un numero non determinato di file a quest ultimo chiamando sempre il metodo concatenaFile.
grazie 
EDIT: ho notato tramite debug (forse si capiva anche senza) che la seconda volta che chiamo il metodo concatenaFile nel test, il programma non entra proprio nel primo while, ma perchè? non dovrebbe rileggere il contenuto del file reader?