pessoal, como posso escrever na primeira linha de um arquivo txt?
segue o código de como eu fiz.
public static void escreve(String texto) {
String textoQueSeraEscrito = texto;
FileWriter arquivo;
try {
arquivo = new FileWriter("Arquivo.txt",true);
arquivo.write(textoQueSeraEscrito);
arquivo.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
O seu programa escreve depois da última linha, conforme você pode comprovar rodando seu programa.
ok… mas…
como escrever na primeira?
Cara, dê uma estudada na classe RandomAccessFile e no metodo seek(int). Ela permite que voce percorra diferentes linhas do arquivo. Veja o exemplo;
try {
File f = new File("c:\\tmp\\teste.txt");
RandomAccessFile raf = new RandomAccessFile(f, "rw");
// Seek to end of file
raf.seek(f.length());
// Append to the end
raf.writeBytes("aString");
raf.close();
} catch (IOException e) {
}
abrss
No tempo dos mainframes, onde as linhas de um arquivo-texto tinham todas 80 caracteres (LRECL (80) para quem se lembra dessa terminologia de mainframes
) daria para fazer isso (posicionar no byte número 0 de um arquivo e escrever por cima de N posições.)
Como você provavelmente vai perceber, se as linhas tiverem comprimentos diferentes, RandomAccessFile não resolve seu problema.
A resposta, infelizmente, é a seguinte: se seu arquivo tem linhas de tamanhos diferentes, você deve criar um novo arquivo - texto, contendo o conteúdo desejado, já que você não pode “escrever na primeira linha” diretamente, só depois da última linha.