Desse jeito não grava nada… ¬¬
No caso não queria usar serialização ainda, pois ainda não entendi direito essa parte…
Gostaria de saber pq está dando errado, pois o Reader e Writer são para trabalhar com caracteres?
Mas agora estava pensando será que eu posso usar para string tb?
Era uma coisa dessas q eu estava procurando.
Mas tipo, eu queria q pulasse linha com o ‘\n’,
pois ele está presente na string.
Vlw \o/
xandevieira
Eu tenho que criar arquivo vindo de um string. No meu caso eu leio uma lista de objetos, faço um laço e adiciona num stringbuffer utilizando a quebra de linha \n, ao final eu gravo utilizando trecho q te passei.
Se explicar melhor seu caso talvez chegemos a uma solução.
Será q influencia na hora de escrever no arquivo isso?
Vlw \o/
Kassiane_Pretti
Olha o codigo completo:
publicclassSimulacao{publicstaticvoidmain(Stringargs[]){try{FileWriterout=newFileWriter("saida1.txt");PrintWritersaida=newPrintWriter(out);BufferedReaderler=newBufferedReader(newInputStreamReader(System.in));StringBufferstringBuffer=newStringBuffer();Scannersc=newScanner(System.in);ProfDEp1=newProfDE();ProfHoristap2=newProfHorista();intlength=4,cont=0;Cadastrocadas=newCadastro(length);intop;do{System.out.println("Escolha:\n1- ProfDE\n2- ProfHorista\n3- Sair\n\n");op=sc.nextInt();switch(op){case1:System.out.println("Preencher os dados do ProfDE: ");System.out.println("Entre com nome: ");p1.setNome(ler.readLine());System.out.println("Entre com a matricula: ");p1.setMatricula(Integer.parseInt(ler.readLine()));System.out.println("Entre com a carga horária: ");p1.setCargaHoraria(Integer.parseInt(ler.readLine()));System.out.println("Entre com o salário: ");p1.setSalario(Double.parseDouble(ler.readLine()));System.out.println(p1.toString());cadas.insere(p1);cont++;break;case2:System.out.println("Preencher os dados do ProfHorista: ");System.out.println("Entre com nome: ");p2.setNome(ler.readLine());System.out.println("Entre com a matricula: ");p2.setMatricula(Integer.parseInt(ler.readLine()));System.out.println("Entre com a carga horária: ");p2.setCargaHoraria(Integer.parseInt(ler.readLine()));System.out.println("Entre com o salário Hora: ");p2.setSalarioHora(Double.parseDouble(ler.readLine()));System.out.println(p2.toString());cadas.insere(p2);cont++;break;}}while(op!=3&&cont<length);for(inti=0;i<cont;i++){Professorp=cadas.get(i);stringBuffer.append(p.toString());}saida.write(stringBuffer.toString());saida.flush();saida.close();out.close();}catch(IOExceptione){System.out.println(e);}catch(IndexOutOfBoundsExceptione){System.out.println(e);}catch(IllegalArgumentExceptione){System.out.println(e);}catch(NullPointerExceptione){System.out.println(e);}catch(IllegalStateExceptione){System.out.println(e);}}}
Quando eu chamo o método toString no programa imprime com quebra de linha sim, só quando manda imprimir no arquivo q não vai…
Mutio estranho isso…
xandevieira
veja meu ultimo post.
seria bom vc rever isto
[quote]
Cadastro cadas = new Cadastro(length);
ProfDE p1 = new ProfDE();
ProfHorista p2 = new ProfHorista();
System.out.println(p1.toString());
System.out.println(p2.toString());
Professor p = cadas.get(i);
[code]
Mas não consigo ver o esteja de errado, pois quando imprime em tempo de excução tem as quebras de linhas certas
será q é só na hora de gravar q acontece isso?
=\
Vlw \o/
T
thingol
Use um outro editor de texto que não o Notepad (Bloco de Notas) para visualizar o arquivo gerado.
O Notepad é estúpido, ele só reconhece quebras de linhas se você usar “\r\n”, não “\n”.
Kassiane_Pretti
Mas isso só em java?
Pq em C nunca tive problemas com o “\n”
Vlw \o/
xandevieira
thingol:
Use um outro editor de texto que não o Notepad (Bloco de Notas) para visualizar o arquivo gerado.
O Notepad é estúpido, ele só reconhece quebras de linhas se você usar “\r\n”, não “\n”.
poxa, testei com notepad e realmente saiu sem a quebra, eta editorzinho fulero.
eu sempre utilizei o textpad como editor de texto.
Kassiane_Pretti
Poxa valeu msm Thingol…
Mas poxa passei minha tarde toda tentando descobrir
o erro e nada…
Puts e era uma coisa tão ridicula ¬¬
Vlw…
Problema resolvido…
Agora tenho q começar a implentar a recuperação dos dados no arquivo.
Mas me responde uma coisa, para recuperar os dados
do Notepad tem algum outro detalhe q nem esse do
“\n”? Pois vou continuar usando ele para os testes e não
gostaria de perder mais tempo com coisas mininas assim.
Obrigadinha \o/
xandevieira
a principio nao,
tenho este codigo para o q vc quer.
assumindo que seja para ler este arquivo de professores.
Mas isso só em java?
Pq em C nunca tive problemas com o “\n”
Vlw \o/
Vamos explicar direitinho por que é que você nunca teve problemas com o C. É que se você usar fopen (“nome.do.arquivo”, “wt”), por exemplo, para criar um arquivo (pode ser também fopen (“nome.do.arquivo”, “w”), mas não fopen (“nome.do.arquivo”, “wb”)), o C converte tudo que é “\n” para “\r\n” na escrita (e na leitura ele faz a “desconversão”, ou seja, “fgets()” transforma “\r\n” para “\n”. É um comportamento esquisito que dá problemas de incompatibilidade com o Unix.
Em Java, para você ter o mesmo comportamento, você não deveria usar “\n”; em vez disso, você pode usar:
println ou
printf ("%n")
Não é muito adequado escrever explicitamente “\n” no Java para tentar pular linhas. Use println ou printf ("%n").
Kassiane_Pretti
Nossa!!! Muito bom Thingol…
avsouza vou tentar aqui e qq coisa eu pergunto aqui de novo…