复制代码代码如下:
导入java.io.File;
导入java.io.IOException;
导入java.util.List;
导入 com.google.common.base.Charsets;
导入 com.google.common.base.Joiner;
导入 com.google.common.base.Preconditions;
导入 com.google.common.collect.Lists;
导入 com.google.common.io.Files;
导入 com.google.common.primitives.Bytes;
公共类 FooUtilsCsvHelper {
// csv的默认分隔符是','
私有最终静态字符串DEFAULT_DELIMITER =“,”;
// 标记新行
私有最终静态字符串DEFAULT_END =“/r/n”;
// 如果您不需要 UTF-8,只需替换字节数组即可。
私有最终静态字节 commonCsvHead[] = {(字节)0xEF,(字节)0xBB,
(字节)0xBF};
/**
* 将源代码写入csv文件
*
* @参数源
* @抛出IOException
*/
public static void writeCsv(List<List<String>> source) 抛出 IOException {
// 抛出 java.lang.NullPointerException
Preconditions.checkNotNull(源);
StringBuilder sbBuilder = new StringBuilder();
for (List<String> 列表:源) {
sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(列表)).append(
DEFAULT_END);
}
文件.write(字节.concat(commonCsvHead,
sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
新文件(“d:///123.csv”));
}
/**
* 简单读取csv文件
*
* @参数文件
* @抛出IOException
*/
公共静态无效 readCsv(文件文件)抛出 IOException {
System.out.println(Files.readFirstLine(文件, Charsets.UTF_8));
}
// 自己运行一个小测试。
公共静态无效主(字符串[] args)抛出IOException {
List<List<String>> source = Lists.newArrayList();
List<String> tmpL = Lists.newArrayList();
tmpL.add("测试标题1");
tmpL.add("测试titile2");
源.add(tmpL);
writeCsv(源);
readCsv(新文件(“d:///123.csv”));
}
}