Leitura de arquivo .CSV

Peguei uma planilha de excel e salvei com .CSV
quando faço a leitura desse aquivo a partir de uma classe em java e mando imprimir o prinln sai da seguinte forma

“0987612”,“CURITIBA”,“PR”

ou seja quero agora QUEBRAR DO PRIMEIRO " ATE O SEGUNDO "
devera sair da seguiente forma
0987612

preciso de uma FUNÇÃO, metodo que pegue o 1 " e vai ate o 2 "
só isso que preciso aguardo

Amigo,

usa o método “split” da classe String.
Por ex:
String[] s = “0987612, CURITIBA, PR”.split(",");
ou seja:
s[0] = “0987612”;
s[1] = “CURITIBA”;
s[2] = “PR”;

até mais…

Amigo funcionou
mais preciso que retorne assim

s[0] = 0987612;
s[1] = CURITIBA;
s[2] = PR;

OU SEJA SEM OS “”


VEJA A FORMA QUE ESTA VINDO OS RETORNOS
Conexão realizada com sucesso com o banco XE!

SELECT BANCO ARQUIVO .CSV
00002 ALTO PARANA “ACRELANDIA”,“AC”,1200013
00002 ALTO PARANA “ASSIS BRASIL”,“AC”,1200054
00002 ALTO PARANA “BRASILEIA”,“AC”,1200104
00002 ALTO PARANA “BUJARI”,“AC”,1200138
00002 ALTO PARANA “CAPIXABA”,“AC”,1200179
00002 ALTO PARANA “CRUZEIRO DO SUL”,“AC”,1200203
00002 ALTO PARANA “EPITACIOLANDIA”,“AC”,1200252
00002 ALTO PARANA “FEIJO”,“AC”,1200302
00002 ALTO PARANA “JORDAO”,“AC”,1200328
00002 ALTO PARANA “MANCIO LIMA”,“AC”,1200336
00002 ALTO PARANA “MANOEL URBANO”,“AC”,1200344
00002 ALTO PARANA “MARECHAL THAUMATURGO”,“AC”,1200351
00002 ALTO PARANA “PLACIDO DE CASTRO”,“AC”,1200385
00002 ALTO PARANA “PORTO ACRE”,“AC”,1200807
00002 ALTO PARANA “PORTO WALTER”,“AC”,1200393
00002 ALTO PARANA “RIO BRANCO”,“AC”,1200401
00002 ALTO PARANA “RODRIGUES ALVES”,“AC”,1200427
00002 ALTO PARANA “SANTA ROSA DO PURUS”,“AC”,1200435
00002 ALTO PARANA “SENA MADUREIRA”,“AC”,1200500
00002 ALTO PARANA “SENADOR GUIOMARD”,“AC”,1200450
00002 ALTO PARANA “TARAUACA”,“AC”,1200609
00002 ALTO PARANA “XAPURI”,“AC”,1200708
00002 ALTO PARANA “AGUA BRANCA”,“AL”,2700102
00002 ALTO PARANA “ANADIA”,“AL”,2700201
00002 ALTO PARANA “ARAPIRACA”,“AL”,2700300
00002 ALTO PARANA “ATALAIA”,“AL”,2700409
00002 ALTO PARANA “BARRA DE SANTO ANTONIO”,“AL”,2700508
00002 ALTO PARANA “BARRA DE SAO MIGUEL”,“AL”,2700607
00002 ALTO PARANA “BATALHA”,“AL”,2700706
00002 ALTO PARANA “BELEM”,“AL”,2700805
00002 ALTO PARANA “BELO MONTE”,“AL”,2700904
00002 ALTO PARANA “BOCA DA MATA”,“AL”,2701001
00002 ALTO PARANA “BRANQUINHA”,“AL”,2701100

Ué!

E está retornando como!?

Dê uma estudada no método replaceAll() da classe String. Ela irá ajudar você a remover os " das Strings.

nilodp,

existem algumas ferramentas para fazer isso que vc quer:

http://ostermiller.org/utils/CSV.html
http://supercsv.sourceforge.net/
http://opencsv.sourceforge.net/

Abraço,

Segue uma classe que fiz… (faz tempo).

[code]package br.com.infotyba.utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class FileUtils {

/** TAMANHO_BUFFER capacidade máxima do buffer de leitura. */
public static int TAMANHO_BUFFER = 8192;

/**
 * Carrega um arquivo texto ou parte.
 * <p><b>Aten&ccedil;&atilde;o:</b> 
 * @param arquivo - arquivo a ser lido
 * @param delimLinha - delimitador de linha, se null então System.getProperty("line.separator")
 * @param posInicial - 0 (inicio do arquivo), ou byte inicial
 * @param posFinal - 0 (para ler todo o arquivo) ou posição final
 * @return java.util.List<String> conjunto de linhas
 * @throws java.lang.RuntimeException - Se houver linhas maiores que o TAMANHO_BUFFER
 */
public static java.util.List<String> readLines(File arquivo, String delimLinha,
        long posInicial, long posFinal) {
    java.util.List<String> linhas = new java.util.ArrayList<String>();
    if (delimLinha == null) {
        delimLinha = System.getProperty("line.separator");
    }
    BufferedReader in = null;
    try {
        char[] buffer = new char[TAMANHO_BUFFER];
        char[] EOL = delimLinha.toCharArray();
        int bufPos = 0;
        int eolPos = 0;
        in = new BufferedReader(new FileReader(arquivo));
        int lido = -1;
        char ch;
        if (posInicial > 0) {
            in.skip(posInicial);
        }
        long qdadeLida = 0L;
        while ((lido = in.read()) != -1) {
            if (posFinal > 0) {
                qdadeLida++;
                if (qdadeLida > posFinal) {
                    break;
                }
            }
            ch = (char) lido;
            buffer[bufPos] = ch;
            bufPos++;
            if (bufPos >= TAMANHO_BUFFER) {
                throw new java.lang.RuntimeException("Tamanho do buffer extrapolado.");
            }
            if (ch == EOL[eolPos]) {
                eolPos++;
                if (eolPos >= EOL.length) {
                    linhas.add(new String(buffer, 0, bufPos - EOL.length));
                    bufPos = 0;
                    eolPos = 0;
                }
            } else {
                eolPos = 0;
            }
        }
        if (bufPos > 0) {
            linhas.add(new String(buffer, 0, bufPos - EOL.length));
        }
        in.close();
    } catch (IOException ex) {
        Logger.getLogger(FileUtils.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        if (in != null) {
            closeSilentlyReader(in);
        }
    }
    return linhas;
}

public static void closeSilentlyReader(java.io.Reader in) {
    if (in != null) {
        try {
            in.close();
        } catch (IOException ex) {
            // ignore
        }
    }
}

}[/code]

E depois para cada linha:

[code] enum EstadosParse {

    NORMAL, TEXTO_DELIMITADO
};

public Object[] processaLinhaDelimitada(String sLinha) {
    if (sLinha == null) {
        return new Object[0];
    }
    EstadosParse estado = EstadosParse.NORMAL;
    java.util.List valores = new java.util.ArrayList();
    String[] delimitadores = fdp.getDelimitadores();
    String auxTextDelim = fdp.getDelimitadorTexto();
    char textoDelim = auxTextDelim.length() > 0 ? auxTextDelim.charAt(0) : 0;
    char[] linha = sLinha.toCharArray();
    StringBuilder token = new StringBuilder("");
    for (int i = 0; i < linha.length; i++) {
        switch (estado) {
            case NORMAL:
                if (textoDelim != 0 && linha[i] == textoDelim) {
                    estado = EstadosParse.TEXTO_DELIMITADO;
                } else {
                    boolean achouDelim = false;
                    for (String s : delimitadores) {
                        if (linha[i] == s.charAt(0)) {
                            if (s.equals(new String(linha, i, s.length()))) {
                                valores.add(token.toString());
                                token = new StringBuilder("");
                                i += (s.length() - 1);
                                achouDelim = true;
                                break;
                            }
                        }
                    }
                    if (!achouDelim) {
                        token.append(linha[i]);
                    }
                }
                break;

            case TEXTO_DELIMITADO:
                while (linha[i] != textoDelim && i < linha.length) {
                    token.append(linha[i]);
                    i++;
                }
                estado = EstadosParse.NORMAL;
                break;
        }
    }
    valores.add(token.toString());
    return valores.toArray();
}[/code]

fw