复制代码代码如下:
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.Preconditions;
importar com.google.common.collect.Lists;
importar com.google.common.io.Files;
importar com.google.common.primitives.Bytes;
classe pública FooUtilsCsvHelper {
// o delemiter padrão do csv é ','
private final static String DEFAULT_DELIMITER = ",";
//Marca uma nova linha
string estática final privada DEFAULT_END = "/r/n";
// Se você não quiser um UTF-8, basta substituir o array de bytes.
byte estático final privado commonCsvHead[] = { (byte) 0xEF, (byte) 0xBB,
(byte)0xBF};
/**
* Grave a fonte em um arquivo csv
*
* @param fonte
* @throws IOException
*/
public static void writeCsv(List<List<String>> fonte) lança IOException {
//Aoid java.lang.NullPointerException
Pré-condições.checkNotNull(fonte);
StringBuilder sbBuilder = new StringBuilder();
for (List<String> lista: fonte) {
sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(lista)).append(
DEFAULT_END);
}
Arquivos.write(Bytes.concat(commonCsvHead,
sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
novo Arquivo("d:///123.csv"));
}
/**
* Simples leitura de um arquivo csv
*
* @param arquivo
* @throws IOException
*/
public static void readCsv (arquivo arquivo) lança IOException {
System.out.println(Files.readFirstLine(arquivo, Charsets.UTF_8));
}
// Execute você mesmo um pequeno teste.
public static void main(String[] args) lança IOException {
List<List<String>> fonte = Lists.newArrayList();
List<String> tmpL = Lists.newArrayList();
tmpL.add("测试titile1");
tmpL.add("测试titile2");
fonte.add(tmpL);
escrevaCsv(fonte);
readCsv(novo arquivo("d:///123.csv"));
}
}