java利用做的csv文件解析为list对象详解编程语言

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.lang.reflect.Field; 
import java.util.ArrayList; 
import java.util.List; 
public class ReadCsv { 
/** 
* 读取csv文件用list对象存储的公共调用方法 
* @param inpath csv文件存储路径 
* @return 返回List<taskRule>对象 
*/ 
public static List<taskRule> readCsv(String inpath) { 
List<taskRule> list = new ArrayList<taskRule>(); // 保存读取到的CSV数据 
try { 
File file = new File(inpath); // 判断文件是否存在 
if (!file.exists()) { 
System.out.println("文件不存在!"); 
} else { 
System.out.println("文件存在!"); 
BufferedReader reader = new BufferedReader(new FileReader(inpath)); // 读取CSV文件 
 
String line = null;// 循环读取每行 
while ((line = reader.readLine()) != null) { 
String[] row = line.split("//|", -1); // 分隔字符串(这里用到转义),存储到List<taskRule>里 
 
taskRule infos = new taskRule(); 
infos.setCateory(row[0]); 
infos.setDescribe(row[1]); 
infos.setName(row[2]); 
infos.setRule(row[3]); 
infos.setCreattime(row[4]); 
infos.setSize(row[5]); 
list.add(infos); 
} 
} 
} catch (Exception e) { 
e.printStackTrace(); 
} 
return list; 
} 
/** 
* 读取csv文件用list对象存储的公共调用方法 
* @param inpath csv文件存储路径 
* @param obj 和csv文件对应的实体类 
* @return 返回List<Object>对象 
*/ 
public static List<Object> readCsv2(String inpath, Object obj) { 
List<Object> list = new ArrayList<Object>(); // 保存读取到的CSV数据 
try { 
File file = new File(inpath); // 判断文件是否存在 
if (!file.exists()) { 
System.out.println("文件不存在!"); 
} else { 
System.out.println("文件存在!"); 
BufferedReader reader = new BufferedReader(new FileReader(inpath)); // 读取CSV文件 
 
String line = null; // 循环读取每行 
while ((line = reader.readLine()) != null) { 
String[] row = line.split("//|", -1); // 分隔字符串(这里用到转义),存储到List<Object>里 
 
Class clazz = obj.getClass(); // 通过反射获取运行时类 
 
Object infos = clazz.newInstance(); // 创建运行时类的对象 
 
Field[] fs = infos.getClass().getDeclaredFields(); // 得到类中的所有属性集合 
for (int i = 0; i < fs.length; i++) { 
Field f = fs[i]; 
f.setAccessible(true); // 设置这些属性值是可以访问的 
 
String type = f.getType().toString(); // 得到此属性的类型 
if (type.endsWith("String")) { 
f.set(infos, row[i]); // 给属性赋值 
 
} 
} 
list.add(infos); 
} 
} 
} catch (Exception e) { 
e.printStackTrace(); 
} 
return list; 
} 
} 
import java.util.List; 
public class test { 
public static void main(String[] args) { //调用测试 
 
String inpath="D://[email protected]"; 
//    List<taskRule> list=ReadCsv.readCsv(inpath); //调用ReadCsv里的方法读取csv文件里的内容,返回对象是List<taskRule> 
//    for (taskRule rule : list) { // 输出 
//    System.out.println(rule.toString()); 
//    } 
 
taskRule taskrule = new taskRule(); 
List<Object> list2=ReadCsv.readCsv2(inpath,taskrule); //调用ReadCsv里的方法读取csv文件里的内容,返回对象是List<taskRule> 
for (Object rule : list2) { // 输出 
 
System.out.println(rule.toString()); 
} 
} 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/17855.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论