No projeto que estou desenvolvendo preciso ler um arquivo de texto, e para separar os dados dentro do arquivo é usado a tecla TAB
Há como eu identificar que a tecla TAB foi pressionada para poder pegar o proximo dado?
O formato do arquivo é: 1 3 3 7 9 18
Exemplo de passar o conteúdo de um .txt (nesse caso chamado Dados.txt) para o JTextArea:
public JTextArea pegarTxtparaTextArea(JTextArea p)
{
try
{
FileReader fr = new FileReader("Dados.txt");
BufferedReader br = new BufferedReader(fr);
p.setText("");
String linha=null;
while( (linha = br.readLine() )!= null )
{
p.append(linha+"\n");
}
}
catch(IOException e)
{
JOptionPane.showMessageDialog(null, "Não foi possivel ler o arquivo Dados.txt!");
}
return p;
}
pedroroxd
Se vc quiser gravar é só fazer isso:
FileWriter fw = new FileWriter("Dados.txt",true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Texto");
bw.newLine();
bw.close();
ViniGodoy
Essa é uma forma antiga de se ler arquivos. Para java 5 ou superior pesquise o uso da classe Scanner e do método split.
pedroroxd
Nem sabia, sempre usei desse geito…
Todos que eu via dava + trabalho (utilizava + linhas de código)
R
Renato.salu
Bom pessoal valeu a ajuda, eu consegui resolver o problema usando o metodo IndexOf da classe String
Porque como no arquivo de texto existira apenas numeros eu desconsidero qualquer coisa que não seja isso
char data[] = {'0','1','2','3','4','5','6','7','8','9'};
String disponiveis = new String(data);
/* Abrindo arquivo de dados */
arqTexto = abreArquivoTexto(localArq);
/* Lendo a primeira linha do arquivo de dados
- Quantidade de jobs que existem no arquivo de dados */
linha = arqTexto.readLine();
while (disponiveis.indexOf(linha.charAt(coluna))!= -1){
idJobAux = idJobAux+linha.charAt(coluna++);
}
Ficou mais ou menos assim. se ajudar alguem ou alguem identificar algum problema ai aceito criticas.
Vini vou dar uma olhada nessa classe Scanner que vc indicou, valeu pessoal