亲宝软件园·资讯

展开

java导出csv乱码 java生成csv文件乱码的解决办法示例 java导出csv乱码

人气:2
想了解java生成csv文件乱码的解决办法示例 java导出csv乱码的相关内容吗,在本文为您仔细讲解java导出csv乱码的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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"));
 }
}

加载全部内容

相关教程
猜你喜欢
用户评论