csv java 科学计数法_Java导入导出csv文件,以及导出出现科学计数法的问题解决...

//导出

public static File createCSVFile(List exportData, LinkedHashMap map, String outPutPath,

String fileName) {

File csvFile = null;

BufferedWriter csvFileOutputStream = null;

try {

File file = new File(outPutPath);

if (!file.exists()) {

file.mkdirs();

}

//定义文件名格式并创建

csvFile =new File(outPutPath+fileName+".csv");

file.createNewFile();

// UTF-8使正确读取分隔符","

//如果生产文件乱码,windows下用gbk,linux用UTF-8

csvFileOutputStream = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(

csvFile), "UTF-8"), 1024);

//写入前段字节流,防止乱码

csvFileOutputStream.write(getBOM());

// 写入文件头部

for (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator.hasNext();) {

java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator.next();

csvFileOutputStream.write((String) propertyEntry.getValue() != null ? (String) propertyEntry.getValue() : "" );

if (propertyIterator.hasNext()) {

csvFileOutputStream.write(",");

}

}

csvFileOutputStream.newLine();

// 写入文件内容

for (Iterator iterator = exportData.iterator(); iterator.hasNext();) {

Object row = (Object) iterator.next();

for (Iterator propertyIterator = map.entrySet().iterator(); propertyIterator

.hasNext();) {

java.util.Map.Entry propertyEntry = (java.util.Map.Entry) propertyIterator

.next();

String str = "";

if(row != null){

Object o = ((Map)row).get( propertyEntry.getKey());

str=(o == null ? "" :o.toString());

}

if(StringUtils.isEmpty(str)){

str="";

}else{

str=str.replaceAll("\"","\"\"");

if(str.indexOf(",")>=0){

str="\""+str+"\"";

}

}

csvFileOutputStream.write(str);

if (propertyIterator.hasNext()) {

csvFileOutputStream.write(",");

}

}

if (iterator.hasNext()) {

csvFileOutputStream.newLine();

}

}

csvFileOutputStream.flush();

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

csvFileOutputStream.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return csvFile;

}

// getBom(),防止导出乱码

public static String getBOM() {

byte b[] = {(byte)0xEF, (byte)0xBB, (byte)0xBF};

return new String(b);

}

导出会出现科学计数法的问题解决:在后面加个 “\ t” 的

row.put("1","哈哈1"+"\t");

row.put("2", "哈哈2");

row.put("3","哈哈3");

//导出

/**

* 导入

*

* @param file csv文件(路径+文件)

* @return

*/

public static List importCsv(File file){

List dataList=new ArrayList();

BufferedReader br=null;

try {

br = new BufferedReader(new FileReader(file));

String line = "";

while ((line = br.readLine()) != null) {

dataList.add(line);

}

}catch (Exception e) {

}finally{

if(br!=null){

try {

br.close();

br=null;

} catch (IOException e) {

e.printStackTrace();

}

}

}

return dataList;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值