近期开发一款可执行jar读取csv文件程序。
一切就绪后,eclipse环境之间运行均通过,使用maven install生成可执行jar,发现写入库里写入数据中文乱码!
顿时以为maven打包导致,各种网上查找修改pom.xml,可终究没有解决。
中间突然想到,会不会是仅仅读取csv文件模块乱码呢,代码修改测试,果真是读取外部文件时才会中文乱码。
晚上查询了一下,eclipse环境下运行使用的eclipse的编码格式:UTF-8;
打包后,将使用操作系统的编码格式。所以在读取文件时,指定编码格式即可
FileInputStream fs = new FileInputStream(fileName);
InputStreamReader in = new InputStreamReader(fs,"UTF-8");
后续再使用InputStreamReader便可以
如:读取properies文件可以直接
new Properties().load(in);
读取csv文件,本人使用opencsv的jar
CSVReader reader = new CSVReader(in);