java生成csv文件乱码的解决方法示例 java导出csv乱码
import java.io.File;
import java.io.IOException;
import java.util.List;
import com.google.common.base.Charsets;
import com.google.common.base.Joiner;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
import com.google.common.primitives.Bytes;
public class FooUtilsCsvHelper {
// csv's default delemiter is ','
private final static String DEFAULT_DELIMITER = ",";
// Mark a new line
private final static String DEFAULT_END = "\r\n";
// If you do not want a UTF-8 ,just replace the byte array.
private final static byte commonCsvHead[] = { (byte) 0xEF, (byte) 0xBB,
(byte) 0xBF };
/**
* Write source to a csv file
*
* @param source
* @throws IOException
*/
public static void writeCsv(List<List<String>> source) throws IOException {
// Aoid java.lang.NullPointerException
Preconditions.checkNotNull(source);
StringBuilder sbBuilder = new StringBuilder();
for (List<String> list : source) {
sbBuilder.append(Joiner.on(DEFAULT_DELIMITER).join(list)).append(
DEFAULT_END);
}
Files.write(Bytes.concat(commonCsvHead,
sbBuilder.toString().getBytes(Charsets.UTF_8.toString())),
new File("d:\\/123.csv"));
}
/**
* Simple read a csv file
*
* @param file
* @throws IOException
*/
public static void readCsv(File file) throws IOException {
System.out.println(Files.readFirstLine(file, Charsets.UTF_8));
}
// Run a small test yourself.
public static void main(String[] args) throws IOException {
List<List<String>> source = Lists.newArrayList();
List<String> tmpL = Lists.newArrayList();
tmpL.add("测试titile1");
tmpL.add("测试titile2");
source.add(tmpL);
writeCsv(source);
readCsv(new File("d:\\/123.csv"));
}
}
上一篇:JAVA8 的StringJoiner 使用及原理解析
栏 目:JAVA代码
本文标题:java生成csv文件乱码的解决方法示例 java导出csv乱码
本文地址:http://www.codeinn.net/misctech/98645.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




