Alguem sabe dizer se tem e qual classe Java trata arquivos csv??? Aqueles msms q banco de dados usam p exportar dados.
Arquivos CSV
9 Respostas
Leia o arquivo, pegue linha a linha e jogue isso numa String, depois só usar o método split(String).
O problema é um pouco mais sutil, porque alguns arquivos CSV podem ter strings. Exemplo:
1;2;3,45;12/08/2006;"R José Aparecido, 23";"Impressão; Compressão"
Aqui temos um CSV exportado pelo Excel em português. Ele tem várias coisas curiosas:
- Separado por “;”, não por “,” (C = Comma, não Semicolon)
- Você pode ter o separador dentro de strings (como em “Impressão; Compressão”
andre, mas 1 arquivo q contenha 50000 palavras de dicionario, isso vai dar numa string???
thingol, mas suponhamos q o arquivos n contenha estas excecoes q darao pau em java, ou seja, esteja organizado assim:
id,nome,texto
1,Joao,texto1
2,Pedro,texto2
3,Marcelo,texto3
Estando neste formato onde n tem caraceters q dêem bronca, existe alguma classe q pega meus dados? ou eu msm terei de faze-la?
obs: este tratamento de string (substituicao do separador, etc) eu posso fazer c 1 replace em 1 editor de texto, o problema eh: existe 1 classe p pegar dados de arquivos csv em Java?
a) Você pode ler o arquivo linha por linha, e separar os campos usando o método split. Exemplo:
String s = “2,Pedro,texto2”;
String[] campos = s.split (",");
int id = Integer.parseInt (campos[0]);
String nome = campos[1];
String texto = campos[2];
b) Deve haver alguém que montou uma classe. É questão deprocurar.
ok ok, mas pelo q entendi algo nativo nem tem ne? 
outra duvida (possa ate ser q seja besta, mas to c duvida): como vo fazer p ler linha por linha do arquivo csv, ja q as linhas variam de tamanho, pq q eu me lembre, eu so mexi c arquivos so de int ou so de float ou so de tamanho fixos, dai dava p le direitin, agora, 1 arquivo deste cada linha varia o tamanho, como seria +ou- o algoritmo q faria esta leitura linha a linha? (eu keria 1 classe q mexesse c csv p n me preocupar c isto).
seria mais ou menos assim:
ler ate encontrar o \n (enter)? qdn encontrasse ai terminaria a linha, isso deve ser facil eu q to criando confusao axo
Um arquivo CSV é um arquivo texto.
Arquivos texto são lidos com aquelas classes de java.io.* que terminam por Reader. Por exemplo (não estou tratando as exceções para você poder entender melhor):
BufferedReader br = new BufferedReader (new InputStreamReader (new FileInputStream ("teste.csv"), "ISO-8859-1"));
String linha;
while ((linha = br.readLine()) != null) {
... bla bla bla
}
br.close();
eu ja mexi c a api java.io.*, so q eu me lembro q li somente arquivos textos q tinha so int, ou so floats, sempre do msm tipo sacou? ai eu lia pelo tamanho, int: 4 em 4 bytes, etc, etc, entendeu? mas pelo q entendi ja tem 1 metodo (readLine()) q le a linha, entao isso ja resolve meu problema (creio), vlw fera!