java生成csv文件乱码的解决方法示例 java导出csv乱码
java生成csv文件乱码的解决方法示例 java导出csv乱码
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:importjava.io.File;importjava.io.IOException;importjava.util....

复制代码 代码如下:

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 = "rn";

// 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"));

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类