Pessoal, eu tenho um arquivo de contantos, onde eu preciso editar os contatos que estao dentro, para isso eu utilizo o RandomAccessFile, onde eu leio todo o arquivo, e regravo utilizando um replace na linha que eu preciso que seja alterada…
até ai beleza, o que ta me deixando intrigado é uns caracteres que o RandomAccessFile está gravando…
a estrutura do arquivo é a seguinte…
luiz henrique ;csi;analista ;06/12/1987;Almirante Pedro Álvares Cabral;PR;São José dos Pinhais;83040530;Boneca do Iguaçu
para gravar é uma maravilha, uso o file writer e fica igualzinho essa linha de cima… ai quando eu resolvo editar a linha com o RandomAccessFile olha só os caracteres que ele coloca
gabriela henrique;csi;analista;06/12/1987;Almirante Pedro ����lvares Cabral;PR;S���£o Jos���© dos Pinhais;83040530 ;Boneca do Igua���§u
a estrutura esta sendo gravada corretamente o problema são esses caracteres do mal…
segue o trecho de codigo responsavel por essa folia…
[code]
public void editarContato(int pos, String nomeAltera ,String nomeAntigo, String novaEmpresa, String novoCargo, String novoAniversario, String novoLogradouro,String novoEstado, String novaCidade,String novoCep, String novoBairro) throws ParseException {
BufferedReader leitor = null;
try {
// File f = new File("resources/cursos2.txt");
// leitor = new BufferedReader(new FileReader(f));
ArrayList<String> linhas = new ArrayList<String>();
RandomAccessFile arquivo =
new RandomAccessFile("resources/contatos.txt", "rw");
String linha = null;
while ((linha = arquivo.readLine()) != null) {
String[] elems = linha.split(";");
String nome = elems[0];
String empresa = elems[1];
String cargo = elems[2];
String aniversario = elems[3];
String logradouro = elems[4];
String estado = elems[5];
String cidade = elems[6];
String cep = elems[7];
String bairro = elems[8];
String formato = "dd/MM/yyyy";
Date data = new SimpleDateFormat(formato).parse(aniversario);
//
System.out.println(linha);
if (nome.equals(nomeAntigo)) {
// cursos.add(new Curso(curso, centroLocal, site));
String linhareescrita = null;
linhareescrita = linha.replaceAll(linha,nomeAltera+ ";"+ novaEmpresa + ";" + novoCargo + ";" + novoAniversario + ";"+ novoLogradouro + ";" + novoEstado + ";" + novaCidade + ";" + novoCep + ";" + novoBairro);
System.out.print(linhareescrita);
linhas.add(linhareescrita);
// fw.write(linhareescrita + "\n");
}else
//fw.write(linha + "\n");
linhas.add(linha);
// System.out.println(linha);
}
FileWriter fw = new FileWriter("resources/contatos.txt");
for (int i = 0; i < linhas.size(); i ++){
System.out.println(linhas.get(i));
if (i >0 ){ fw.append(System.getProperty("line.separator"));
}
fw.write(linhas.get(i));
// System.out.println(linhas.get(i));
}
fw.close();
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
if (leitor != null) {
try {
leitor.close();
} catch (IOException e) { /* ignorado */ }
}
}
}[/code]
abraço a todos…