Jump to content

Recommended Posts

Posted

Boa tarde, tenho tido um problema em java, não sei se alguém e poderá ajudar.

No meu projecto, estou a gravar strings em um ficheiro de texto, até ai tudo bem, o problema esta em fazer import desse ficheiro para preencher a base de dados.

Por agora, consigo ler o ficheiro e ficar com cada linha em um "token" utilizando este código:

while( (strLine=bReader.readLine()) != null  ){				
		  // Split on `|` or `,` and then take every alternate element.
			 String[] tokens = strLine.split(":");

Até aqui tudo bem, mas o "tokens" vai ter 9 campos, que é igual a: id, duraçao, despesas, etc.

Agora queria criar uma lista de strings onde ira guardar todos os tokens para depois poder preencher a minha base de dados, isto é ter uma variável por exemplo "stringPreencher" em que cada posição "[0], [1], [2], etc" tenha as 9 posições do tokens.

Alguém tem alguma ideia de como possa resolver isso?

Obrigado desde já pela ajuda.

Posted

O ficheiro é um ficheiro de texto .txt, o meu problema é mesmo fazer um array dentro de um array, digamos, onde a posição do primeiro array, [0], irá ter mais 9 posições dentro dele, que era a informação que vem na variável tokens, eu já fiz o debug e já vi que o tokens fica com a informação toda certinha, só falta mesmo conseguir meter os vários tokens, correspondentes as varias linhas em uma unica variável.

Obrigado desde já pela ajuda 🙂

Posted (edited)

não respondeste à minha pergunta ...

Não, o ficheiro pode ser guardado em qualquer formato...

Edit: o projecto é para Android, não sei se isso interfere com a ideia que tem sobre os ficheiros ou não...

Edited by NEMESISaka
Posted

porque não usas o Serializable ?

crias uma classe que implementa esse interface e depois é sempre a'andar

Ainda não conhecia essa função, vou tentar perceber mais sobre ela e depois posto o resultado, já agora, dá para gravar os objectos da mesma maneira e ler em qualquer dispositivo?

é que eu tenho uma lista de actividades e cada actividade tem um campo e eu estou a exportar cada actividade por linha, logo tenho x actividades com x campos...

Posted

Obrigado HappyHippyHippo, já consegui!

Apesar de não ter utilizado esse metedo, vou deixar aqui na mesma como resolvi o problema.

while( (strLine=bReader.readLine()) != null  ){				
   // Split on `|` or `,` and then take every alternate element.
   String[] tokens = strLine.split("#");
   actividades.add(new ActividadeDB(Integer.parseInt(tokens[0]), tokens[1], tokens[2], tokens[3], tokens[4], Integer.parseInt(tokens[5]), tokens[6], tokens[7], tokens[8]));
  }

simplesmente criei um array do tipo que eu queria e no fim da função returnei o array...

#request close

Posted

Eu diria para fazeres isso em JSON. Ao carregares o ficheiro ficas logo com as estrutura que te permite aceder aos dados de forma decente.

“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

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.