Exportar lista a CSV em Java

Escrito por matthew cory | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Exportar lista a CSV em Java
As listas CSV são uma forma fácil e simples de armazenar dados (Jupiterimages/Photos.com/Getty Images)

Trabalhar com conjuntos de dados é um requerimento virtual da programação. Seja uma lista de informações do usuário ou um catálogo de produtos, quase todos os projetos necessitam de que você lide com vários elementos de um tipo de dado similar. Armazenar esses dados de uma forma que permita sua leitura, inclusive por outros programas, pode ser, no entanto, complicado. Embora existam várias possibilidades, uma das formas mais simples é gerar um arquivo de Valores Separados por Vírgula (CSV).

Outras pessoas estão lendo

Breve descrição dos arquivos CSV

Um arquivo de valores separados por vírgulas armazena um conjunto de dados, de forma similar a uma planilha eletrônica. Um objeto é definido em uma linha, e cada coluna contém um campo particular desse objeto. Para certificar-se de que os dados sejam fáceis de serem processados, um caractere especial (normalmente uma vírgula, embora qualquer símbolo possa ser usado) é inserido entre cada coluna. Opcionalmente, alguns programas, como o Excel, incluirão uma linha de cabeçalho que indicará o que representa cada coluna.

Criando um arquivo CSV

Criar um arquivo CSV é fácil. De fato, a parte mais difícil é geralmente decidir qual caractere usar. Como foi dito antes, a vírgula é a escolha mais frequente. Mostra-se abaixo um exemplo de como criar um arquivo CSV com vírgulas:

final List<Contact> contacts = getContacts();

final FileWriter fw = new FileWriter(fileName); for (final Contact c : contacts) { final String csvStr = "\"" + c.getFirstName() + "\",\"" + c.getLastName() + "\",\"" + c.getPhoneNumber() + "\""; fw.write(csvStr + "\n"); } fw.close();

Note que esse método adiciona aspas duplas (") ao redor de cada valor, para que possa ser lido corretamente, mesmo contendo vírgulas.

Ler arquivos CSV

Ler dados de um arquivo CSV também é fácil, desde que você conheça a ordem em que eles estão guardados. A diferença entre outras opções, tais como XML ou bases de dados relacionais, é que os arquivos CSV geralmente não contêm informação sobre os dados armazenados.

final List<Contact> contacts = new ArrayList<Contact>(); String line; while ((line = br.readLine()) != null) { final String[] parts = line.split("\",\""); parts[0] = parts[0].replace("\"", ""); parts[2] = parts[2].replace("\"", ""); contacts.add(new Contact(parts[0], parts[1], parts[2])); }

Note que o código substitui todas as aspas duplas no primeiro nome (parts[0]) e números telefônicos (parts[2]); isto se faz para a brevidade no presente artigo. Um código mais robusto deveria remover apenas as aspas de início e fim de cada campo, além de fazer comprovações de erros, para certificar-se de que o array de retorno tem realmente todas as partes.

Decidir quando usar arquivos CSV

CSV é uma opção simples e fácil. No entanto, é importante saber quando usar o formato. Se o conjunto de dados for grande, pode ser mais apropriado usar uma base de dados relacional para beneficiar-se do suporte adicional a consultas e modificações. Se os dados serão compartilhados com outros desenvolvedores, XML será outra opção razoável, pois não só é simples de usar na maioria dos casos, mas também pode incorporar mais facilmente informações adicionais sobre os dados guardados como, por exemplo, usando etiquetas <firstName>Bob</firstName> em vez de apenas uma coluna em um arquivo de texto.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível