devi semplicemente:
- aprire un file in scrittura;
- aprire uno stream di input, input che verrà acquisito dal terminale;
- ripetere, finchè non si è digitato lo 0, la lettura dallo stream e la scrittura su file;
- chiudere lo stream di input e il file.
eccoti una bozza che ho scritto di fretta, ma che funziona:
codice:
/**
* @author Naruto 92
*/
import java.io.*;
public class Stream
{
private String estensione, zero;
public Stream(){
estensione=".txt";
zero="0";
}
public void daTerminaleAFile(String nomeFile){
if(!nomeFile.isEmpty()){
try{
//creazione dell'oggetto File
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw=new PrintWriter(new FileWriter(nomeFile+estensione, true));
System.out.print("");
String line;
while(!(line=br.readLine()).equals(zero)){
pw.println(line);
}
br.close();
pw.flush();
pw.close();
}catch(IOException ex){
//da gestire
}
}else{
//da gestire
}
}
public static void main(String args[]){
Stream s=new Stream();
s.daTerminaleAFile("pippo");
}
}
Ovviamente la devi adattare secondo le tue esigenze.
Potresti anche procedere in un altro modo: salvare in una stringa, magari utilizzando un oggetto StringBuffer\Builder che è meglio, di volta in volta la stringa digitata e scriverla, alla fine dell'acquisizione, tutta in un colpo sul file.
Tieni inoltre presente che, se lo zero venisse inserito in una frase, l'acquisizione non si fermerebbe in quanto la condizione sarebbe falsa. In questo caso puoi procedere in due modi:
- controllare ogni volta se la stringa contenga o meno il carattere 0;
- effettuare un'acquisizione carattere e per carattere e quindi effettuare il controllo sul singolo carattere inserito.
spero di averti chiarito un pò le idee ^^