Estou montando um programa para controle de ligações, no entanto, preciso também criar um importador de dados, de forma a importar todos os clientes para o meu banco de dados. Como vou fazer isso?? Tenho todos os clientes em planilhas excel, ou seja, em arquivos .txt separando os campos com “;” (ponto e vírgula). Estive utilizando a apostila da Caelum a respeito de Java.io, mas não atende minha necessidade pois preciso importar os dados definindo o tamanho de cada varredura dentro da mesma linha… Estou perdidinho… Alguém poderia me dar uma força??
Na verdade eu quero importar a partir do arquivo texto, não do arquivo em estrutura Excel… A intenção é, além de importar, aprender a manipular arquivos texto.
Lindberg,
Sua instrução me ajuda apenas a abrir o arquivo e realizar a leitura de uma linha inteira, preciso ler o arquivo em “colunas”, exemplo: Leia até encontrar “;”, daí faça tal coisa… entendeu??
Mas se voce usar while, substring, length em cada linha que for lida, enfim criar algo que vai ti ajudar
com certeza … voce vai conseguir isso garanto !!!
Bom dia.
Sei que o tópico é antigo, mas acho útil postar a solução para o que o amigo solicitou:
//Classe LerArquivo
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.NoSuchElementException;
import java.util.Scanner;
public class LerArquivo {
//Recebe o caminho completo do arquivo a ser "lido"
public void ler(String diretorio) throws FileNotFoundException {
File arquivo = new File(diretorio);
// variáveis que receberão cada "coluna" do meu arquivo
// se tenho 3 colunas preciso de 3 variáveis (ex.: nome;sobrenome;idade;)
int variavel1;
String variavel2;
Double variavel3;
try {
if (arquivo.exists()) {
if (arquivo.canRead()) {
// aqui diga qual o separador utilizado no seu arquivo: ; por exemplo
// exemplo: nome;sobrenome;idade; etc...
Scanner scanner = new Scanner(new FileReader(arquivo)).useDelimiter(";");
while (scanner.hasNext()) {
variavel1 = scanner.nextInt();
variavel2 = scanner.next();
variavel3 = scanner.nextDouble();
// e quantas outras forem necessárias
}
// se der erro no arquivo, entao informa ao usuário
} else {
System.out.println("O arquivo \"" + arquivo + "\" não foi encontrado.");
}
} else {
System.out.println("O arquivo \"" + arquivo + "\" não foi encontrado.");
}
} catch (NumberFormatException msg) {
System.out.println("Erro na conversão dos dados: " + msg.getMessage());
} catch (NoSuchElementException msg) {
System.out.println("Conteúdo inválido!\nVerifique o conteúdo e o layout e tente novamente." + msg.getMessage());
}
}
}
//Main
import java.io.IOException;
import Persistencia.LerArquivo;
public class Principal {
public static void main(String[] args) throws IOException {
LerArquivo la = new LerArquivo();
// passando o nome e local do arquivo a ser importado
la.leitor("c:\temp\grafo.txt");
}
}
… bom, espero que isso ajude alguém.
Se alguém quiser me corrigir em algo eu agradeço.