Comment écrire ArrayList<Object> dans un fichier csv
J'ai un ArrayList<Metadata>
et je veux savoir si il y a une API Java pour travailler avec des fichiers CSV qui a une méthode d'écriture qui accepte un ArrayList<> en tant que paramètre similaire à LinqToCsv .Net. Comme je sais OpenCSV est disponible, mais les CsvWriter classe de ne pas accepter une collection.
Mon Métadonnées Classe est
public class Metadata{
private String page;
private String document;
private String loan;
private String type;
}
ArrayList<Metadata> record = new ArrayList<Metadata>();
une fois que j'remplir le dossier, je veux écrire chaque ligne dans un fichier csv.
S'il vous plaît suggérer.
Pourquoi ne pas. Qu'en est javacsv?
OriginalL'auteur Maverick | 2016-01-28
Vous devez vous connecter pour publier un commentaire.
Sûrement, il y a un tas d'Api qui va le faire pour vous, mais pourquoi ne pas le faire vous-même pour un cas simple? Il vous permettra d'économiser une dépendance, ce qui est une bonne chose pour tout projet, de toute taille.
Créer un
toCsvRow()
méthode dansMetadata
qui rejoint les chaînes séparées par une virgule.Recueillir le résultat de cette méthode pour chaque
Metadata
objet séparé par une nouvelle ligne.MODIFIER
Ne devriez-vous pas avoir autant de chance que Java 8 et le Flux de l'API à votre disposition, ce serait presque aussi simple à l'aide d'une Liste traditionnelle.
ok, je suis lié à Java 7, c'est pourquoi il n'a pas été reconnaissant de Flux.de(). est-il possible de le faire sans flux j'.e sur Java 7.
Bien sûr, la cartographie et la collecte de flux est juste plus agréable. Voir mise à jour de la réponse, vous devriez être capable de faire le dernier bit de la mise de chaque rangée sur un coin de la ligne vous-même.
OriginalL'auteur Henrik
En utilisant CSVWriter, vous pouvez convertir le
ArrayList
à un tableau, et le passer à l'écrivain .OriginalL'auteur Arnaud
Si vous avez une ArrayList d'Objets (les Métadonnées dans votre cas), vous devez utiliser la BeanToCSV au lieu de la CSVWriter.
Vous pouvez regarder le BeanToCSVTest dans le opencsv code source pour des exemples de comment l'utiliser.
mmmmkay - Comment le testWriteQuotes() de test au sein de la BeanToCSVTest qui prend la testData liste de tableaux et envoie le résultat à l'fournis Écrivain (pour le cas de test c'est un StringWriter afin que je puisse tester le résultat. Désolé, je ne veux pas sortir comme snippy ou sarcastique, mais je suis impie occupé et n'avez pas le temps de rédiger des exemples. La plupart des openCSV a des tests qui, bien que admis dans son ensemble sont trop gros pour être utilisé comme un exemple, peut être regardé individuellement à titre d'exemples. Dans l'avenir, je vais essayer de l'affiner à des tests spécifiques que la meilleure réponse à la question.
OriginalL'auteur Scott Conway