Ler arquivo texto - Não consigo pegar os valores entre as colunas sep por pipe

3 respostas
A

Olá boa taarde!
Estou tentando ler uma arquivo texto e não consigo pegar as colunas separadas por pipe.
Alguem poderia me dar uma luz sobre isto?

Desde já meus agradecimentos,

ANT.CARLOS/SP


public void getCidade() throws IOException {

List listVoo = new LinkedList();

BufferedReader br = null;

int nCodmun = 0;

int nNome = 1;

int nUf = 2;

int i = 0;
String[] cidade = new String[3];

    try {
        br = new BufferedReader(new FileReader("C:\\Cidades.txt"));
    } catch (FileNotFoundException ex) {
        Logger.getLogger(Teste.class.getName()).log(Level.SEVERE, null, ex);
    }
    for (String linha = br.readLine(); linha != null; linha = br.readLine()) {
        cidade = linha.split("|");
        Cidade cid = new Cidade();
        cid.setCodmun(cidade[nCodmun]);
        cid.setNome(cidade[nNome]);
        cid.setUf(cidade[nUf]);

        System.out.println("Codmunicipio " + cid.getCodmun());
        System.out.println("Nome  " + cid.getNome());
        System.out.println("UF " + cid.getUf());
        i++;
        if (i > 3) {
            break;
        }
    }
}

|520005|ABADIA DE GOIAS |GO|
|310010|ABADIA DOS DOURADOS |MG|
|520010|ABADIANIA |GO|
|310020|ABAETE |MG|
|150010|ABAETETUBA |PA|
|230010|ABAIARA |CE|
|290010|ABAIRA |BA|


3 Respostas

charleston10

Nossa cara onde vc achou esse padrão de dados?

Usa CSV bem melhor, até pq é compativel com a maioria dos banco de dados, arquivos de planilha… etc
http://javaaberto.blogspot.com.br/2012/11/manipulacao-de-arquivo-csv.html

E

O seu problema é que split requer uma expressão regular como parâmetro, e “|” é um caracter especial para expressões regulares.
Se quiser que o “|” não seja interpretado como uma expressão regular, e sim como uma simples string, use Pattern.quote:

cidade = linha.split(Pattern.quote("|"));

Isso deve resolver seu problema :slight_smile:

A

Obrigado, deu certo!

Criado 6 de dezembro de 2012
Ultima resposta 6 de dez. de 2012
Respostas 3
Participantes 3