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???
lgweb
Maio 4, 2010, 10:56pm
#3
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]