好用的Java 工具类

解决中文乱码:

<!-- lang: java --> 
    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"));
        }
    }

转载于:https://my.oschina.net/frankies/blog/213078

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值