Bom dia,
Gostaria da ajuda de todos vocês com o seguinte problema, preciso ler um arquivo de varias linhas, ate ai tudo bem, mas preciso gravar linha por linha depois de fazer mudanças, e necessita ser no mesmo arquivo
ai segue o codigo
[code]File file = new File(“c:\Arquivo.txt”);
BufferedReader bf = new BufferedReader(new FileReader(file));
Scanner scan = new Scanner(bf);
String str = JOptionPane.showInputDialog(“digite”);
String readLine=null;
String bank=null;
while (scan.hasNext()) {
readLine = scan.next();
if(readLine.contains(str)){
readLine ="#" +readLine;
}
bank +=readLine;
Cara, dá uma estudada no FileOutputStream (como a Lina comentou)…
tem diversos tutoriais bons por ai… dica: se vc utiliza FileInputStream para a leitura, utilize o FileOutpuStream para gravar…
Olha nao estou querendo nada facil mas eu juro que eu nao consigo entender as coisas lendo, e alem do mais eu sou bem iniciante e aprendi o pouco que sei foi forçando msm nem sei como pra falar a verdade, se vc pudesse me dar um exemplo pratico dessa aplicaçao juro que nao necessitaria mais de ajuda nisso =)
Certo mas esse exemplo seu nao vai substituir meu arquivo e nem gravar linha por linha =(
vai continuar o msm arquivo e vai colocar a linha feita embaixo
[quote=guialeixo]mas preciso gravar linha por linha depois de fazer mudanças, e necessita ser no mesmo arquivo
ai segue o codigo[/quote]
Oi,
Se você fizer o write dentro do while ele irá gravar linha por linha.
Se você quiser limpar seu arquivo antes de começar a gravar nele, apenas de um delete nele e crie ele novamente.
Como já foi dito, procure por FileInput e FileOutput, essa é a melhor solução.
Sera que da certo, pois eu estou lendo de um arquivo e armazenando numa string, e nao da pra armazenar depois no arquivo txt com quebra de linha a string
Pra ter quebra de linha basta vc colocar “\n” aonde vc quer que quebre.
E se for necessario na rotina que grava vc pode passar como parametro a string e o caminho do arquivo pra vc poder gravar.
[]'s
Bem o primeiro funcionou mais ou menos o problema é que ele nao grava por cima e sim grava abaixo, o segundo nao grava =)
ouu me disculpa pelo trabalho q estou lhe dando =)
[quote=guialeixo]Bem o primeiro funcionou mais ou menos o problema é que ele nao grava por cima e sim grava abaixo, o segundo nao grava =)
ouu me disculpa pelo trabalho q estou lhe dando =)[/quote]
Depois de executar isso:
FileOutputStream fo = new FileOutputStream(file,true);
[quote=lina][quote=guialeixo]Bem o primeiro funcionou mais ou menos o problema é que ele nao grava por cima e sim grava abaixo, o segundo nao grava =)
ouu me disculpa pelo trabalho q estou lhe dando =)[/quote]
Depois de executar isso:
FileOutputStream fo = new FileOutputStream(file,true);
Você deve fazer:
file.delete(); //Ou clear() não lembro o método..
Tchauzin![/quote]
ouuu mtoo obrigadoo =))
mto obrigadooo msm
FileOutputStream fo = new FileOutputStream(file,false);