Fiz o código abaixo e supostamente ele deveria escrever o que é digitado no teclado no arquivo gravar.txt...mas isso não acontece...nao mostra erro nenhum, consigo escrever, mas nao grava no arquivo..alguém tem uma idéia do que seria?
Obrigado
importjava.io.*;publicclassArquivos3{publicstaticvoidmain(String[]args){digitarTeclado();}publicstaticvoiddigitarTeclado(){try{FileWritero=newFileWriter("d:\Gravar.txt");Stringlinha;InputStreamReaderisr=newInputStreamReader(System.in);BufferedReaderin=newBufferedReader(isr);PrintWriterout=newPrintWriter(o);System.out.println("Digite algo no console e tecle enter");try{while((linha=in.readLine())!=null){System.out.println("Linha: "+linha);out.println(linha);}out.flush();in.close();o.close();}catch(Exceptione){e.getMessage();}}catch(IOExceptione){System.out.println(e.getMessage());}}}
Provavelmente vc deve ter matado o programa… ao invés de ele ter terminado normalmente…
Nao passando nos flush
Será isso?
A
alexmdo
Fiz uma pequena alteração que agora acredito que funcione.
O problema é que enquanto você não realizar um flush() ou close() do stream, essa informação não será gravada.
Portanto, coloquei uma condição de saída do seu loop (-1), o que possibilitará fechar o stream e gravar os dados no arquivo.
publicstaticvoidmain(String[]args){digitarTeclado();}publicstaticvoiddigitarTeclado(){try{FileWritero=newFileWriter("c:\Gravar.txt");Stringlinha;InputStreamReaderisr=newInputStreamReader(System.in);BufferedReaderin=newBufferedReader(isr);PrintWriterout=newPrintWriter(o);System.out.println("Digite algo no console e tecle enter");try{while(!(linha=in.readLine()).equals("-1")){System.out.println("Linha: "+linha);out.println(linha);}out.flush();in.close();o.close();}catch(Exceptione){e.getMessage();}}catch(IOExceptione){System.out.println(e.getMessage());}}
Abracos
AITech_IX
rogelgarcia:
Provavelmente vc deve ter matado o programa… ao invés de ele ter terminado normalmente…
Nao passando nos flush
Será isso?
Entao, eu acho que eu nem saio do programa…
Mas executei a dica do alexm e ele agora termina, mas continua nao gravando…
Nao estou conseguindo :?
AITech_IX
Quer dizer…ele está granvando sim…mas grava “-1”…a condiçao de saída do loop…mas qq outra coisa ele nao grava…
rogelgarcia
publicstaticvoidmain(String[]args){digitarTeclado();}publicstaticvoiddigitarTeclado(){try{FileWritero=newFileWriter("c:\Gravar.txt");Stringlinha;InputStreamReaderisr=newInputStreamReader(System.in);BufferedReaderin=newBufferedReader(isr);PrintWriterout=newPrintWriter(o);System.out.println("Digite algo no console e tecle enter");try{while(!(linha=in.readLine()).equals("-1")){System.out.println("Linha: "+linha);out.println(linha);}out.flush();in.close();o.close();}catch(Exceptione){System.out.println(e.getMessage());<<<<<<}}catch(IOExceptione){System.out.println(e.getMessage());}}
Pode ser que tenha dado excecao… mude a linha e veja se funciona…
Para vc ver o resultado no arquivo ao inserir cada linha faça essa alteracao:
publicstaticvoidmain(String[]args){digitarTeclado();}publicstaticvoiddigitarTeclado(){try{FileWritero=newFileWriter("c:\Gravar.txt");Stringlinha;InputStreamReaderisr=newInputStreamReader(System.in);BufferedReaderin=newBufferedReader(isr);PrintWriterout=newPrintWriter(o);System.out.println("Digite algo no console e tecle enter");try{while(!(linha=in.readLine()).equals("-1")){System.out.println("Linha: "+linha);out.println(linha);out.flush();<<<<<<<<<<<<<<<<<}//out.flush(); <<<<<<<<in.close();o.close();}catch(Exceptione){System.out.println(e.getMessage());}}catch(IOExceptione){System.out.println(e.getMessage());}}
AITech_IX
Entendi rogel…mas ainda nao grava com essa modificaçao…
rogelgarcia
while(!(linha=in.readLine()).equals("-1")){
Verifique essa linha se está correta
rogelgarcia
Testei o programa aqui… tá funcionando…
packagesnippet;importjava.io.BufferedReader;importjava.io.FileWriter;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;publicclassSnippet{publicstaticvoidmain(String[]args){digitarTeclado();}publicstaticvoiddigitarTeclado(){try{FileWritero=newFileWriter("Gravar.txt");Stringlinha;InputStreamReaderisr=newInputStreamReader(System.in);BufferedReaderin=newBufferedReader(isr);PrintWriterout=newPrintWriter(o);System.out.println("Digite algo no console e tecle enter");try{while(!(linha=in.readLine()).equals("-1")){System.out.println("Linha: "+linha);out.println(linha);out.flush();}// out.flush(); <<<<<<<<in.close();o.close();}catch(Exceptione){System.out.println(e.getMessage());}}catch(IOExceptione){System.out.println(e.getMessage());}}}