Olá, estou desenvolvendo um programa, onde eu gostaria de fazer que os dados fossem salvos no computador que está instalado (evitando a utilização de banco de dados). Exemplo abaixo:
Exemplo
O usuário iria registrar por exemplo os produtos de uma loja, onde teria o ID, Código, Nome e Valor, ao ser registrado iria ser criado um arquivo com o nome Produtos.txt automaticamente e ao registrar outros produtos, ele iria apenas atualizar esse arquivo com os novos dados. A estrutura do arquivo ficaria mais ou menos assim:
Produtos.txt
ID =
Código =
Nome =
Valor =
E quando registrado um produto ficaria assim:
Produtos.txt
ID = 1
Código = 12345678
Nome = Bolacha
Valor = 30.00
E caso fosse registrado mais de um produto, ele criaria novas linhas com os dados e apenas atualizaria o arquivo, como por exemplo:
Produtos.txt
ID = 1
Código = 12345678
Nome = Bolacha
Valor = 30.00
ID = 2
Código = 13572468
Nome = Biscoito
Valor = 20.00
Alguém sabe se seria possível fazer isso e como posso fazer?
Achei esse código, ele gera o arquivo caso não exista e atualiza o arquivo ao inserir novas informações, porém se tiver algum texto, ele irá substituir e não adicionar, segue o código:
Código
packagetelas;importjava.awt.BorderLayout;importjava.awt.EventQueue;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.border.EmptyBorder;publicclassGravarProdutosextendsJFrame{/** * */privatestaticfinallongserialVersionUID=1L;privateJPanelcontentPane;privatestaticBufferedReaderreader;/** * Launch the application. */publicstaticvoidmain(String[]args){try{// ConteúdoStringcontent="\nID = 1\n"+"Código = 12345678\n"+"Nome = Bolacha\n"+"Valor = 30.00\n";// Cria arquivoFilefile=newFile("Produtos.txt");// Se o arquivo não existir, ele geraif(!file.exists()){file.createNewFile();}// Prepara para escrever no arquivoFileWriterfw=newFileWriter(file.getAbsoluteFile());BufferedWriterbw=newBufferedWriter(fw);// Escreve e fecha o arquivobw.write(content);bw.close();// Lê o arquivoFileReaderler=newFileReader("Produtos.txt");reader=newBufferedReader(ler);Stringlinha;while((linha=reader.readLine())!=null){System.out.println(linha);}// Imprime confirmacaoSystem.out.println("\nGravado!");}catch(IOExceptione){e.printStackTrace();}EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{GravarProdutosframe=newGravarProdutos();frame.setVisible(true);}catch(Exceptione){e.printStackTrace();}}});}/** * Create the frame. */publicGravarProdutos(){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100,100,450,300);contentPane=newJPanel();contentPane.setBorder(newEmptyBorder(5,5,5,5));contentPane.setLayout(newBorderLayout(0,0));setContentPane(contentPane);}}
jacoboliveira
Ola @VinyciusCS, cara pq tu não usa a lib do commons-io usando o maven, vai facilitar tua vida, segue um exemplo:
Em “writeLines”, e tive que substituir o “FileUtils” por “FileUtilities” para que reconhecesse, e os textos ele seria adicionado pelo usuário, por exemplo, através de um JTextField, apenas coloquei daquela forma acima porque foi o único que achei e funcionou o mais próximo, mesmo assim obrigado!