<p>Il existe plusieurs bibliothèques. Voici deux exemples :</p>
<h2><a name="p-34916-x2750-apache-commons-langhttpcommonsapacheorglang-1" class="anchor" href="#p-34916-x2750-apache-commons-langhttpcommonsapacheorglang-1" aria-label="Heading link"></a><a href="http://commons.apache.org/lang/">❐ Apache Commons Lang</a></h2>
<p><a href="http://commons.apache.org/lang/">Apache Commons Lang</a> inclut une classe spéciale pour échapper ou dé-échapper des chaînes (CSV, EcmaScript, HTML, Java, Json, XML) : <a href="http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringEscapeUtils.html"><strong><code>org.apache.commons.lang3.StringEscapeUtils</code></strong></a>.</p>
<ul>
<li></li>
</ul>
<p><em>Échapper</em> vers CSV</p>
<pre><code class="lang-auto">String escaped = StringEscapeUtils
.escapeCsv("I said \"Hey, I am 5'10\".\""); // I said "Hey, I am 5'10"."
System.out.println(escaped); // "I said ""Hey, I am 5'10""."""
</code></pre>
<ul>
<li></li>
</ul>
<p><em>Dé-échapper</em> depuis CSV</p>
<pre><code class="lang-auto">String unescaped = StringEscapeUtils
.unescapeCsv("\"I said \"\"Hey, I am 5'10\"\".\"\"\""); // "I said ""Hey, I am 5'10""."""
System.out.println(unescaped); // I said "Hey, I am 5'10"."
</code></pre>
<ul>
<li><em>Vous pouvez le télécharger depuis</em> <a href="http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22commons-lang3%22">ici</a>.</li>
</ul>
<h2><a name="p-34916-x2750-opencsvhttpopencsvsourceforgenet-2" class="anchor" href="#p-34916-x2750-opencsvhttpopencsvsourceforgenet-2" aria-label="Heading link"></a><a href="http://opencsv.sourceforge.net/">❐ OpenCSV</a></h2>
<p>Si vous utilisez <a href="http://opencsv.sourceforge.net/"><strong>OpenCSV</strong></a>, vous n’aurez pas à vous soucier de l’échappement ou du dé-échappement, uniquement de l’écriture ou de la lecture du contenu.</p>
<ul>
<li></li>
</ul>
<p>Écriture de fichier :</p>
<pre><code class="lang-auto">FileOutputStream fos = new FileOutputStream("awesomefile.csv");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
CSVWriter writer = new CSVWriter(osw);
...
String[] row = {
"123",
"John",
"Smith",
"39",
"I said \"Hey, I am 5'10\".\""
};
writer.writeNext(row);
...
writer.close();
osw.close();
os.close();
</code></pre>
<ul>
<li></li>
</ul>
<p>Lecture de fichier :</p>
<pre><code class="lang-auto">FileInputStream fis = new FileInputStream("awesomefile.csv");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
CSVReader reader = new CSVReader(isr);
for (String[] row; (row = reader.readNext()) != null😉 {
System.out.println(Arrays.toString(row));
}
reader.close();
isr.close();
fis.close();
</code></pre>
<ul>
<li><em>Vous pouvez le télécharger depuis</em> <a href="http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.opencsv%22">ici</a>.</li>
</ul>