Pessoal,
Estou precisando abrir um arquivo e fazer algo assim:
WAR$23699$Touchstone$Corea$Corea#
Eu iria eliminar o registro acima da minha TreeMap e no arquivo devo fazer isso aqui (no lugar onde está o registro acima):
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
substitui-lo por x’s.
O que fiz, quando manipulei já guardei onde todos os registros começaram no arquivo com o e o seu próprio tamanho,
Então o que fiz:
[code]
RandomAccessFile raf = new RandomAccessFile ( “dados.txt”, “rw” ) ;
try {
Scanner sk;
Writer out = new OutputStreamWriter ( new FileOutputStream ( raf.getFD ( ) ) , "UTF-8" );
int i=0;
int n1=0;
int n2=0;
System.out.print("Confirme a chave a ser Editada: ");
sk = new Scanner(System.in);
String leitura8 = sk.next();
n1 = map.get(leitura8).getInicio();
n2 = map.get(leitura8).getTamanho();
raf.seek (n1+1);
while(n1<n2)
{
out.write( "x " ) ;
n1++;
}
out.flush();
}
catch (FileNotFoundException ex) {
ex.printStackTrace();
System.err.println(ex);
}
catch (IOException ioe) {
ioe.printStackTrace();
}
[/code]
onde então ele da os problemas.
os Campos getInicio e getTamanho, foi o que eu tinha tido, que são os campos onde guardei o inicio de todos os registros no arquivo e seu tamanho e com o seek eu iria até lá e substituiria tudo por x.
meu programa está todo em anexo, se alguém puder me da uma força:
O problema está na classe Indice,
da linha 229 até a linha 264.
Para testar o programa basta rodar a classe
TestePrograma.java
abraços e agradeço.
Jhonata Emerick