2010-07-26 5 views
5

Wenn Benutzer erstellte Zeichenfolgen in einer CSV-Datei gespeichert werden soll. Gibt es eine bevorzugte Bibliothek zum Escapen der Zeichenfolge oder sollte ich meine eigene Funktion schreiben?Java Escaping String für die Speicherung in csv-Datei

+0

möglich Duplikat [csv API für Java] (http://stackoverflow.com/questions/101100/csv-api-for-java) – finnw

+0

http://stackoverflow.com/questions/200609/can-you-recommend-a-java-library-for-reading-and-possibly- Schreiben-csv-Dateien – Zaki

+0

RFC 4130 ist zwar ziemlich einfach . Hier ist ein weiteres Beispiel: http://stackoverflow.com/questions/3190303/how-to-create-csv-file-using-servlet/3190598#3190598 – BalusC

Antwort

6

Ich schlage vor, dass Sie hier eine der von den Posts empfohlenen Bibliotheken verwenden. Es mag zwar einfach erscheinen, einen eigenen CSV-Ersteller/Parser zu schreiben, aber Sie werden auf Probleme stoßen, bei denen Sie Szenarien wie Benutzerzeichenfolgen mit Kommas oder Anführungszeichen behandeln müssen, was manchmal ziemlich umständlich sein kann. Früher habe ich die folgenden Bibliotheken und sie hat gut funktioniert: -

+0

opencsv - Schöne, schlanke JAR-Bibliothek, die gut für mich gearbeitet hat. Vielen Dank! –

1

Wenn Sie Ihre eigene Implementierung schreiben, dann ist hier RFC für Sie Hinweis: http://tools.ietf.org/html/rfc4180

Wenn Ihre Zeichenfolge nicht zu kompliziert ist, können Sie leicht eine kleine Funktion entwickeln, anstatt eine Bibliothek zu verwenden. Ich habe oben auf RFC verwiesen und kleine Funktion für den gleichen Zweck in einem meiner Projekte erstellt.

1

Für alle, für die Code-Suche:
fügen Sie diese zu Ihrer pom.xml

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.6</version> 
</dependency> 

Dann nutzen:

String escaped = StringEscapeUtils.escapeCsv("tHIS String 'needs escaping'"); 
System.out.println(escaped); //safe for csv 
Verwandte Themen