| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2005 16:57:18
|
tecko
Thread.start()
Membro desde: 10/07/2004 13:26:04
Mensagens: 27
Offline
|
Olá!
Preciso saber como posso escrever no meio de um arquivo que já esteja preenchido sem sobrescrever o texto original.
Por exemplo:
| Arquivo
|
| Isto está escrito
| em um arquivo.
| Não quero
| sobrescrever!!
Depois, deveria ficar assim:
| Arquivo
|
| Isto está escrito
| em um arquivo.
| Quero adicionar
| coisas aqui!!!!!
| Não quero
| sobrescrever!!
Alguém sabe isso e pode me ajudar???????
[]'s.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2005 17:03:50
|
marcioa1
Virtual Machine Man
![[Avatar]](/images/avatar/169779d3852b32ce8b1a1724dbf5217d.jpg)
Membro desde: 29/11/2003 12:52:10
Mensagens: 736
Localização: Valinhos-SP
Offline
|
Acho que você pode ler o arquivo original em um outro novo, acrescentar as linhas no arquivo novo, continuar com as linhas restantes do arquivo original, salvar o novo arquivo com o nome do arquivo original.
Márcio
|
SCJP 1.4, |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2005 17:15:14
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Ou melhor ainda, usar a classe RandomAccessFile.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2005 17:17:22
|
leonardorcortes
HelloWorld
![[Avatar]](/images/avatar/418db2ea5d227a9ea8db8e5357ca2084.jpg)
Membro desde: 29/03/2005 14:51:19
Mensagens: 12
Localização: Porto Alegre - RS
Offline
|
Acho que isso soluciona o seu problema. A grande jogada está em informar true, no FileWriter e PrinterWriter, isso deixa claro que não é para sobrescrever dados já armazenados.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2005 17:20:34
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
leonardorcortes, neste caso você SÓ pode "apendar" (adicionar no fim) os dados, certo?
Com o RAF que eu falei antes você pode navegar no arquivo.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2005 17:26:27
|
leonardorcortes
HelloWorld
![[Avatar]](/images/avatar/418db2ea5d227a9ea8db8e5357ca2084.jpg)
Membro desde: 29/03/2005 14:51:19
Mensagens: 12
Localização: Porto Alegre - RS
Offline
|
Certo, não havia me dado conta... Desculpa o mal entendido
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2005 15:05:04
|
tecko
Thread.start()
Membro desde: 10/07/2004 13:26:04
Mensagens: 27
Offline
|
Mas eu já estou usando RandomAccessFile e ele está sobrescrevendo as linhas que já estão escritas!!!!!
E preciso tirar medidas de tempo, então é muita perda de processamento escrever em dois arquivos...
Alguma idéia???????????
[]'s!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2005 15:12:18
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
acho que o jeito é ter o arquivo em memória (StringBuffer) e trabalhar com ele assim.. E de tempo vc grava em disco.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/03/2005 15:34:31
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Sugestao: de uma boooooooooooooooa lida nos JavaDocs do pacote java.io
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/04/2005 18:35:35
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Uma boa dica é perguntar como é que um editor de texto (por exemplo, o Notepad ou o UltraEdit) trata esse tipo de coisas, já que ele precisa fazer exatamente isso (inserir e remover linhas).
Se o editor for bastante ingênuo, como o Notepad, ele carrega o arquivo inteiro (é rápido se o arquivo for pequeno), você modifica o arquivo, e depois o arquivo é gravado por inteiro.
Se você tiver um editor de texto como o Ultraedit, ele copia o seu arquivo para um arquivo temporário, e se esse arquivo temporário for relativamente pequeno (menor que alguma limitação do Sistema Operacional, tipicamente 1GB ou 2GB), ele pode ser mapeado em memória e tratado mais ou menos como se fosse uma região contígua de memória. Digo "mais ou menos" porque isso também não é verdade. Para evitar grandes movimentações de memória (que seriam refletidas em grandes quantidades de leituras e escritas no disco), normalmente as regiões de memória são segmentadas em blocos, e há um tratamento bastante sofisticado desses blocos.
Ou seja, o mais fácil é ter os seus dados em memória, e gravar de vez em quando. Resta saber quantos dados você pode guardar na memória...
|
|
|
|
 |
|
|