2010-07-26 17 views
5

Si desea almacenar cadenas creadas por el usuario en un archivo csv. ¿Hay una biblioteca preferida para usar para Escapar la cadena o debería escribir mi propia función?Java Escaping String for Storage en el archivo csv

+0

posible duplicado de [API para Java csv] (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- writing-csv-files – Zaki

+0

RFC 4130 es bastante simple, aunque . Aquí hay otro ejemplo: http://stackoverflow.com/questions/3190303/how-to-create-csv-file-using-servlet/3190598#3190598 – BalusC

Respuesta

6

Le sugiero que utilice una de las bibliotecas recomendadas por las publicaciones aquí. Si bien puede parecer fácil escribir tu propio creador/analizador de CSV, te encontrarás con problemas en los que necesitas manejar escenarios como cadenas de usuario con comas o comillas, lo que a veces puede ser bastante engorroso. He utilizado las siguientes bibliotecas y funcionaron bien: -

+0

opencsv - Una biblioteca JAR agradable y funcional que me fue muy útil. ¡Gracias! –

1

Si va a escribir su propia aplicación, entonces aquí es el RFC para usted referencia: http://tools.ietf.org/html/rfc4180

Si su cadena no es demasiado complicada, puede desarrollar fácilmente una función pequeña en lugar de usar una biblioteca. He hecho referencia a RFC y he creado una función pequeña para el mismo propósito en uno de mis proyectos.

1

Para el que busque código:
Agregar a su pom.xml

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

A continuación, utilice:

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