dúvida usando java.io

Olá pessoal, seguinte:

Estou tentado fazer uma atividade em que o usuário digite algumas linhas e essas linhas são gravadas uma a uma em um arquivo txt. Após a gravação terminar quando for digitada uma linha em branco o conteúdo do txt é listado.
Bom, quem puder ajudar, agradeço

Bom…fiz o seguinte codigo:
import java.io.*;
public class EntradaTexto {

/**
 * @param args
 * @throws IOException 
 */
public static void main(String[] args) {
	

//	File f = new File("c:\\arquivos\\log.txt");
	String linha="0";
try{
	while(!linha.isEmpty()) {
	InputStreamReader is = new InputStreamReader(System.in);
	BufferedReader in = new BufferedReader(is);
	System.out.println("Digite:");
	linha = in.readLine();
	FileWriter fw = new FileWriter("c:\\arquivos\\log.txt");
	fw.write(linha);
	}
	
	

			
}catch (Exception e){
	
}
}

}

A questao é que se der o fw.close; e linha.close dentro do while, o while só funciona uma vez, alguma sugestão???

opa olha ai veio



import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {
	
	
	static  final String SEPARATOR ="\n";
	static  final String PATH ="c:\log.txt";
	public static void main(String[] args) {
		String linha="0";
		try{
			InputStreamReader is = new InputStreamReader(System.in);
			BufferedReader in = new BufferedReader(is);
			FileWriter fw = new FileWriter(PATH);
		while(!linha.isEmpty()) {
		System.out.println("Digite:");
		linha = in.readLine();
		fw.write(linha);
		fw.write(SEPARATOR);
		}
		fw.flush();
		fw.close();
		lerArquivo();		
		
		}catch (Exception e){
e.printStackTrace();
		}
		}
	private static void lerArquivo() {
		 try {
		        BufferedReader in = new BufferedReader(new FileReader(PATH));
		            String str;
		            while (in.ready()) {
		                str = in.readLine();
		                System.out.println(!"".equals(str)?"resultado...:"+str:"");
		            }
		            in.close();
		    } catch (IOException e) {
		    	e.printStackTrace();
		    }
		
	}
	

}

ve se funfa ai

Se quiser um código equivalente, em java 5:

[code]
package teste;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {
static final String PATH =“log.txt”;

public static void main(String[] args) throws FileNotFoundException {
        Scanner in = new Scanner(System.in);
        String linha;
        PrintWriter out = new PrintWriter(PATH);
        do {
            System.out.println("Digite: ");
            linha = in.nextLine().trim();
            if (!linha.isEmpty()) {
                out.println(linha);
            }
        } while (!linha.isEmpty());
        
        out.flush();
        out.close();
        
        in.close();
            
        lerArquivo();
    }

private static void lerArquivo() throws FileNotFoundException {
        Scanner in = new Scanner(new File(PATH));
        while (in.hasNextLine()) {
            System.out.printf("resultado...: %s%n", in.nextLine());
        }
        in.close();
}

}[/code]