Estou encontrando problemas para ler um TXT onde contenha delimitadores.
Gravar foi beleza, agora ler ta dificil.
Alguém pode me ajudar?
[code]
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Agendinha extends JFrame implements ActionListener {
private JLabel lNome = new JLabel(“Nome”);
private JLabel lTele = new JLabel(“Telefone”);
private JLabel lEnde = new JLabel(“Endereço”);
private JButton b1 = new JButton(“Grava”);
private JButton b2 = new JButton(“Abre”);
private JTextField t1 = new JTextField("");
private JTextField t2 = new JTextField("");
private JTextField t3 = new JTextField("");
private String nome, endereco, telefone, nome_arquivo;
private JPanel P1;
private FileDialog Fabrir, Fsalvar;
public static void main(String[] args) {
JFrame Tela = new Agendinha();
Tela.setVisible(true);
WindowListener x = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
};
Tela.addWindowListener(x);
}
Agendinha() {
t1.setColumns(25);
t2.setColumns(25);
t3.setColumns(25);
b1.addActionListener(this);
b2.addActionListener(this);
setTitle("Agenda Simples");
setResizable(false);
setSize(300, 220);
setLocationRelativeTo(null);
setAlwaysOnTop(true);
getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));
Fabrir = new FileDialog(this, "Abrir arquivo", FileDialog.LOAD);
Fsalvar = new FileDialog(this, "Salvar arquivo", FileDialog.SAVE);
P1 = new JPanel();
P1.setLayout(new FlowLayout(FlowLayout.CENTER));
P1.add(b1);
P1.add(b2);
getContentPane().add(lNome);
getContentPane().add(t1);
getContentPane().add(lTele);
getContentPane().add(t2);
getContentPane().add(lEnde);
getContentPane().add(t3);
getContentPane().add(P1);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b1) {
try {
nome = t1.getText();
telefone = t2.getText();
endereco = t3.getText();
Fsalvar.setVisible(true);
if (Fsalvar.getFile() == null)
return;
nome_arquivo = Fsalvar.getDirectory() + Fsalvar.getFile();
FileWriter out = new FileWriter(nome_arquivo);
out.write(nome + ";" + telefone + ";" + endereco);
// out.write(telefone);
// out.write(endereco);
out.close();
t1.setText("");
t2.setText("");
t3.setText("");
} catch (Exception exc) {
JOptionPane.showMessageDialog(null, “Ocorreu um Erro de Gravação”,
“Operação Não Realizada”, JOptionPane.ERROR_MESSAGE);
}
}
if (e.getSource() == b2) {
try {
Fabrir.setVisible(true);
if (Fabrir.getFile() == null)
return;
nome_arquivo = Fabrir.getDirectory() + Fabrir.getFile();
FileReader in = new FileReader(nome_arquivo);
String T = “”;
int i = in.read();
while (i != -1)
{
T = T + (char)i;
i = in.read();
}
// t1.setText(T);
StringTokenizer st = new StringTokenizer(T, “;”);
while (st.hasMoreTokens())
System.out.println("Cada registro em separadao>> " +
st.nextToken());
t1.setText(T);
} catch (Exception exc2) {
JOptionPane.showMessageDialog(null, “Ocorreu um Erro ao Tentar Abrir”,
“Operação Não Realizada”, JOptionPane.ERROR_MESSAGE);
}
}
}
}[/code]
O meu problema ta neste trecho
if (e.getSource() == b2) {
try {
Fabrir.setVisible(true);
if (Fabrir.getFile() == null)
return;
nome_arquivo = Fabrir.getDirectory() + Fabrir.getFile();
FileReader in = new FileReader(nome_arquivo);
String T = "";
int i = in.read();
while (i != -1)
{
T = T + (char)i;
i = in.read();
}
// t1.setText(T);
StringTokenizer st = new StringTokenizer(T, ";");
while (st.hasMoreTokens())
System.out.println("Cada registro em separadao>> " +
st.nextToken());
t1.setText(T);
Fico no aguardo da ajuda de vocês.