复制代码代码如下 :
importer java.io.File ;
importer java.io.IOException ;
importer java.util.List ;
importer com.google.common.base.Charsets ;
importer com.google.common.base.Joiner ;
importer com.google.common.base.Preconditions ;
importer com.google.common.collect.Lists ;
importer com.google.common.io.Files ;
importer com.google.common.primitives.Bytes ;
classe publique FooUtilsCsvHelper {
// le délimiteur par défaut du csv est ','
Chaîne statique finale privée DEFAULT_DELIMITER = ",";
// Marque une nouvelle ligne
Chaîne statique finale privée DEFAULT_END = "/r/n" ;
// Si vous ne voulez pas d'UTF-8, remplacez simplement le tableau d'octets.
octet statique final privé commonCsvHead[] = { (octet) 0xEF, (octet) 0xBB,
(octet) 0xBF } ;
/**
* Écrire la source dans un fichier csv
*
* Source @param
* @throws IOException
*/
public static void writeCsv(List<List<String>> source) lance IOException {
// Aoïde java.lang.NullPointerException
Conditions préalables.checkNotNull(source);
StringBuilder sbBuilder = new StringBuilder();
pour (List<String> liste : source) {
sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(list)).append(
DEFAULT_END);
}
Files.write(Bytes.concat(commonCsvHead,
sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
nouveau fichier("d:///123.csv"));
}
/**
* Lire simplement un fichier csv
*
* Fichier @param
* @throws IOException
*/
public static void readCsv (fichier fichier) lance IOException {
System.out.println(Files.readFirstLine(fichier, Charsets.UTF_8));
}
// Exécutez vous-même un petit test.
public static void main (String[] args) lance IOException {
List<List<String>> source = Lists.newArrayList();
List<String> tmpL = Lists.newArrayList();
tmpL.add("测试titile1");
tmpL.add("测试titile2");
source.add(tmpL);
écrireCsv(source);
readCsv(nouveau fichier("d:///123.csv"));
}
}