Pessoal é meu primeiro post aki XD
eu to com um problema eu quero escrever uma palavra grava-la num arquivo e repetir esse processo com uma opção e terminar quando o usuário dizer não. segue o código.
import java.io.*;
public class EntradaTexto {
public static void main(String[] args) {
String existe = "sim";
do {
if(existe == "sim"){
String linha = "";
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(isr);
System.out.println("Digite algo no console e tecle enter");
try {
linha = in.readLine();
System.out.println("Linha: " + linha);
in.close();
} catch (Exception e) {
e.getMessage();
}
existe =opcao();
System.out.println(existe);
}
try {
FileWriter o = new FileWriter("c:\arquivos1\destino.txt");
PrintWriter out = new PrintWriter(o);
out.flush();
o.close();
} catch (Exception e){
e.getMessage();
}
}while(existe != "sim");
}
private static String opcao() {
String existe = "";
String opcao = "sim";
InputStreamReader op = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(op);
System.out.println("Digitar outra palavra?");
try {
opcao = in.readLine();
System.out.println("Opção: " + opcao);
existe = opcao;
in.close();
} catch (Exception e) {
e.getMessage();
}
return existe;
}
}
Dica: para comparar 2 strings, não use “==” e sim equals.
Por exemplo:
String s = "abc";
// Isto funciona:
if ("def".equals (s)) ...
// Isto normalmente não funciona:
if ("def" == s) ...
// Isto funciona:
if (! "ghi".equals (s)) ...
// Isto normalmente não funciona:
if ("ghi" != s) ...
Ó cara eu tentei melhorar o seu código aqui, primeiro voce nao poderia fechar o seu buffered sempre, senao ele nao irá digitar mais esse era um dos erros.
o resto vou confessar que nao entendi direito oq voce queria fazer então tentei adaptar uma lógica.
Observe o meu código e veja como é mais facil fazer usando While( que se parece com um loop de if)
além de tentar criar outro método para salvar, deixar as coisas bem distintas.
aa e mais um erro nunca use 2 try em um método só, é muito raro isso ser utilizado(eu nunca vi nenhum caso), utilize apenas um try com vários catchs para excessões diferentes.