[RESOLVIDO] Reinventei a roda ou é novidade?

Fala galera blz?

Recentemente precisei desenvolver uma pequena aplicação em java. Não tinha acesso e nem poderia utilizar banco de dados.
Pensei em utilizar arquivos textos!
Com isso fui desenvolvendo uma classe (que ficou maior que imaginei) que era capaz de funcionar como uma base de dados e que cada pasta fosse considerado uma tabela e cada arquivo uma linha de registro, dentro desse arquivo dados delimitados por determinado caractere para separar, como uma espécie de coluna! Alguém sabe se isso já existe??

No final ficou bem legal.
Basicamente considero uma pasta chamada “Cadastro” por exemplo, e cada arquivo dentro dela com um nome é um registro, podendo possuir a extensão desejada e o delimitador também.
Vamos supor que estou criando um cadastro de Contatos, o nome da pasta chama-se “Contato” e os nomes “Testador1”, “Testador2” e “MaisUmTestador” são arquivos com uma extensão qualquer, dentro dele existe por exemplo: Nome, email, telefone e observações separados por um caracter especial, nesse caso um ‘$’:

Nome de teste$teste@tester.com.br$(00) 1234-5678$Nenhuma Obs.

Existe algo já pronto que funcione dessa forma?
Se não existir encaminho a classe com 2 exemplos para quem quiser ver!

Abraços!!

E porque não fez cada tabela em um arquivo com vários registros ?

Então rapaz!
A dificuldade foi fazer buscas e alterar registros.

Estou tentando resolver isso nesse momento inclusive
:frowning:

Voce poderia alterar o seu formato de $ por JSON, ai poderia usar qualquer JSON parser pra trabalhar em cima dos arquivos.

Ex: Se baseando no que o rmendes08 disse, com um arquivo pra cada tabela, voce teria por exemplo um arquivo chamado cadastro, com vários registros em formato json
{ “id”: 1, “nome”:“Igor”, “idade”:28}
{ “id”: 2, “nome”:“Jose”, “idade”:65}
{ “id”: 3, “nome”:“Maria”, “idade”:42}

Ai, com um JSON parser, Gson por exemplo, vc faria gson.fromJson(json, Cadastro.class). Dai pra frente, trabalharia com apenas classes Java, e nao mais em cima do arquivo texto.

Exemplo do Gson: http://blog.globalcode.com.br/2012/02/json-facil-em-java-com-gson.html

1 curtida

E bancos de dados embarcados, como Derby, HSQLDB ou SQLite ? Você não precisa de servidor, você embarca o BD junto com a sua aplicação, você também não pode usar esta alternativa ?

Ficaria melhor assim, não:

{
    clientes:[
        { "id": 1, "nome":"Igor", "idade":28},
        { "id": 2, "nome":"Jose", "idade":65},
        { "id": 3, "nome":"Maria", "idade":42}
   ]
}

Às vezes você não precisa executar queries nem transações, só precisa armazenar/persistir. Mas “pra funcionar como um banco de dados” OP, precisa ter os 3.

Essa do JSON é ótimo! É possível fazer pequisas também?

Poxa pessoal adorei as dicas.
Mas quando fui olhar eram 02:00 da manhã e já tinha implementado uma classe que simula uma tabela e fiz como o amigo falou. Vários registros dentro de um único arquivo!
Assim consigo realizar buscas pela id, buscas por string para retornar apenas 1 registro, busca por string que retorna vários registros, remoção, remoção em massa, adicionar e editar!

É proibido ou posso postar aqui o link para vocês olharem a classe?
Fiz também alguns exemplos de uso, acho que ficou legal para um iniciante. Fiz até uma pequena JAVADOC. kkkkkk

Bom galera, para aqueles que queiram o JAR com o projetinhopequeno exemplo baixem aqui:
TableInFile_dist.zip (167.2 KB)

Dentro do arquivo está o JAR do projetinho, a documentação e um arquivo para testar chamado TestaTudo.java.

Abraços!

É mais interessante você criar sua conta no Github e posta o link aqui.

Obrigado pela dica sobre Github!
Nunca tinha utilizado, criei uma conta, fiz uma pesquisa sobre como usar e a importância do versionamento.
Segue abaixo o link do meu git:

https://github.com/esleysanches

Abraços