eu ja tinha lido esse artigo e me ajudou no inicio do código.
Eu estou fazendo isso mesmo, inserindo um string que contem uma linha completa. O problema ta aí:
Eu digito um novo código de conta a ser cadastrada.
Faço uma busca e localizo o código exatamente menor que ele de uma conta ja gravada no arquivo.
A partir daí o que precisaria fazer é saltar para o final desta linha, inserir uma nova linha e gravar a minha String sobre ela.
Uma inserção mesmo, porém na linha correta.
Segue abaixo a estrutura do arquivo e o trecho do codigo que estou utilizando:
public void procurar (String cod) throws Exception {
try{
String e=null;
String linha = null;
String linhainteira = null;
boolean consta=false;
FileReader reader = new FileReader(arquivo);
BufferedReader buffReader = new BufferedReader(reader);
FileWriter writer = new FileWriter(arquivo,true);
PrintWriter arquivo_escrever = new PrintWriter(writer);
while ((linha = buffReader.readLine()) != null){
linhainteira = linha.trim().toUpperCase();
String aux=linha.substring(5,20).trim();
if (cod.trim().compareTo(aux) == 0){
System.out.println(cod+" <-> "+linha.substring(5));
arquivo_escrever.println(aux.toUpperCase());
System.out.println("Conta Encontrada");
consta=true;
}
}
reader.close();
buffReader.close();
//return (consta);
}
catch (Exception ex){
System.out.println(ex);}
}
ARQUIVO BASE PLANO DE CONTAS .TXT
1ºAD 1 ATIVO
2ºAD 1.1 CIRCULANTE
3ºAD 1.1.1 Disponível
4ºAD 1.1.1.01 Caixa e Bancos
5ºAD 1.1.1.01.01 Caixa Geral
5ºAD 1.1.1.01.02 Caixa Tesouraria
5ºAD 1.1.1.01.03 Caixa Recepção
5ºAD 1.1.1.01.04 Caixa Compras
5ºAD 1.1.1.01.05 Caixa Aeroporto
5ºAD 1.1.1.01.06 Caixa Obras e Reformas
4ºAD 1.1.1.02 Depósitos a Vista
5ºAD 1.1.1.02.01 Banco Bradesco Ag. CTC
5ºAD 1.1.1.02.02 Banco Santander
4ºAD 1.1.1.03 Numerários em Trânsito