Bom dia, estou com uma dúvida, eu quero recuperar dados de uma JTable que salvei em um arquivo TXT, e colocá - las nas colunas correspondentes: Código - Nome - Preço.
Aqui um print da tabela:
Código para ler no arquivo:
private void lerDados(String cod){
try {
BufferedReader bf = new BufferedReader(new FileReader("../Panificadora/Clientes/Cliente" + cod + "/produtos.txt"));
DefaultTableModel model = (DefaultTableModel)tabela.getModel();
String s = bf.readLine();
while(s != null){
String[] ss = s.split(s);
for(int i = 0;i < ss.length;i++){
if(ss.equals("null")){
ss = null;
}
}
model.addRow(ss);
s = bf.readLine();
}
} catch (FileNotFoundException ex) {
System.out.println("Arquivo não encontrado!");
} catch (IOException ex) {
System.out.println("Linhas não foram lidas!");
}
}
Print do Arquvivo:
As linhas aparecem, porém não aparece os dados, o que fazer?
1 - Evite usar DefaultTableModel
2 - Quando salvar o arquivo, defina um separador. Pode ser ponto e vírgula, vírgula ou pipe |
3 - Está usando java 8 ou superior?
@darlan_machado , desculpe a demora e obrigado por responder. Eu estou usando Java 8.2 do Netbeans
Samuel-Samp:
Java 8.2
Acho que você está confundindo a versão da IDE com a do Java, a IDE Netbeans tem a versão 8.2, o Java não!
Versão do Java você consulta via terminal: java -version
Onde olha a versão do Java?
Esse aqui é o algoritmo que salva os dados da tabela no arquivo.
private void Produtos() {
try {
StringBuilder b;
String local = "../Panificadora/Clientes/Cliente" + codigoCliente.getText() + "/produtos.txt";
FileWriter x = new FileWriter(local, false);
PrintWriter y = new PrintWriter(x);
ArrayList<StringBuilder> linhas = new ArrayList<StringBuilder>();
for (int i = 0; i < tabela.getRowCount(); i++) {
b = new StringBuilder();
for (int j = 0; j < tabela.getColumnCount(); j++) {
b.append(tabela.getValueAt(i, j)).append(";");
}
linhas.add(b);
}
for (StringBuilder cb : linhas) {
y.println(cb.toString());
}
Eu só coloquei esse “.append(”;") " e serviu como marcador
b.append(tabela.getValueAt(i, j)).append(";");`
Javafree foi incorporado ao guj há anos, logo, presumo que o exemplo que está seguindo é bem antigo.
Sugestão: tente usar coisas do java 8 mesmo.
Ok @darlan_machado , mas eu usei aquele algoritmo de salvar. O problema tava no .append(";");
, que servia como separador e eu não tinha colocado. Agora deu certo aqui. Muito Obrigado pela ajuda todos.
Eu usei esse algoritmo mesmo e deu certo e para recuperar eu deixei aquele que eu mostrei no início.