Jump to content
ricardo_1977

Actualizar dados de ficheiros

Recommended Posts

ricardo_1977

boas,

tou a fazer um trabalho academico que manipula ficheiros

eu pretendia actualizar dados de ficheiro.

eu tenho um ficheiro txt com dados

durante a execucao eu guardo dados em memoria(num arraylist) de um outro ficheiro.

caso tenha havido alteracoes eu tenho de actualizar os dados do ficheiro anterior.

no fundo eu posso escrever por cima do que ja existe mas nao estou a conseguir fazer isso.

ele quando me escreve faz-lo no fim do ficheiro

como posso fazer isso?

Share this post


Link to post
Share on other sites
Baderous

Mostra como estás a abrir o ficheiro, se calhar estás a abrir em modo "append".

Share this post


Link to post
Share on other sites
ricardo_1977

aqui vai:

BufferedWriter out = new BufferedWriter(new FileWriter(file,true));

ja agora qual o import para usar o metodo subString?

se puser:

  if(linha.subString(0).equals("#")) {...

da-me o can not find symbol - method subString(int)

Share this post


Link to post
Share on other sites
Baderous

Pois, era esse o problema, estás a abrir o ficheiro em modo append:

Constructs a FileWriter object given a File object. If the second argument is true, then bytes will be written to the end of the file rather than the beginning.

http://download.oracle.com/javase/1.5.0/docs/api/java/io/FileWriter.html#FileWriter%28java.io.File,%20boolean%29

Quando não sabes em que package está a classe que contém um dado método, consultas a API que podes encontrar googlando.

Share this post


Link to post
Share on other sites
KTachyon

Porque não é subString(), é substring(). Para além disso, se queres comparar o primeiro char, não podes fazer assim. Ou dizes que é de 0 a 1:

linha.substring(0,1).equals("#")

Ou então fazes um charAt(0):

linha.charAt(0) == '#'


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
brunoais

Porque não é subString(), é substring(). Para além disso, se queres comparar o primeiro char, não podes fazer assim. Ou dizes que é de 0 a 1:

linha.charAt(0) == '#'

O método usando o charAt é melhor. É mais rápido (mais fácil para o computador).


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
ricardo_1977

Com o charAt ficou logo a funcionar.

em relaçao á ajuda dos ficheiros a resposta pelo menos podia ser outra.

Eu era capaz de ajudar e depois fazer referencia á API mas pronto

THKS

Share this post


Link to post
Share on other sites
Baderous

em relaçao á ajuda dos ficheiros a resposta pelo menos podia ser outra.

Eu era capaz de ajudar e depois fazer referencia á API mas pronto

THKS

A ajuda foi dada. A solução está mais do que explícita na ajuda. E lendo as regras, saberás que eu não vou indicar a solução porque não é essa a política da casa.

Share this post


Link to post
Share on other sites
ricardo_1977

Sim ajudou sem duvida.

e agradeço-te.

era uma duvida simples - o problema estava em abrir sempre o ficheiro com true mas nao me passou pela cabeça que pudesse estar ai.

mas depois ainda me deparei com outro pk akilo estava a escrever um arraylist todo em ficheiro e se o abrisse sempre com false entao so me ficava a ultima linha do arraylist.

tive de o abrir com false e fechar de novo e depois voltar a abrir com true e fazer o que tinha a fazer.

thks

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.