复制代码代码如下:
importar java.io.File;
importar java.io.IOException;
importar java.util.List;
importar com.google.common.base.Charsets;
importar com.google.common.base.Joiner;
importar com.google.common.base.Precondiciones;
importar com.google.common.collect.Lists;
importar archivos com.google.common.io.;
importar com.google.common.primitives.Bytes;
clase pública FooUtilsCsvHelper {
// el delimitador predeterminado de csv es ','
Cadena estática final privada DEFAULT_DELIMITER = ",";
// Marca una nueva línea
Cadena estática final privada DEFAULT_END = "/r/n";
// Si no desea un UTF-8, simplemente reemplace la matriz de bytes.
byte estático final privado commonCsvHead[] = { (byte) 0xEF, (byte) 0xBB,
(byte) 0xBF };
/**
* Escribir fuente en un archivo csv
*
* @param fuente
* @throws IOException
*/
writeCsv vacío estático público (List<List<String>> fuente) lanza IOException {
// Aoid java.lang.NullPointerException
Condiciones previas.checkNotNull(fuente);
StringBuilder sbBuilder = nuevo StringBuilder();
para (Lista<Cadena> lista: fuente) {
sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(lista)).append(
DEFAULT_END);
}
Archivos.write(Bytes.concat(commonCsvHead,
sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
nuevo archivo("d:///123.csv");
}
/**
* Lectura sencilla de un archivo csv
*
* archivo @param
* @throws IOException
*/
readCsv vacío estático público (archivo) lanza IOException {
System.out.println(Files.readFirstLine(archivo, Charsets.UTF_8));
}
// Ejecute una pequeña prueba usted mismo.
public static void main (String [] args) lanza IOException {
Lista<Lista<Cadena>> fuente = Lists.newArrayList();
Lista<Cadena> tmpL = Listas.newArrayList();
tmpL.add("测试titile1");
tmpL.add("测试titile2");
fuente.add(tmpL);
escribirCsv(fuente);
readCsv(nuevo archivo("d:///123.csv"));
}
}