java动态读取日志_通过java的反射动态生成日志文件的方法

/**

* 根据反射传入不同的List动态生成日志文件

* @param list数据集合

* @param writeTxtPath日志文件生成路径

* @throws IllegalArgumentException

* @throws IllegalAccessException

* @throws FileNotFoundException

*/

public static  void writeTxtFile(List list,String writeTxtPath) throws IllegalArgumentException, IllegalAccessException, FileNotFoundException {

if(list.size() == 0){

throw new RuntimeException("集合的个数为0");

}

PrintWriter pw = new PrintWriter(writeTxtPath);

//生成标题

StringBuffer sbTitle = new StringBuffer();

//生成每个javaBean的值

StringBuffer sbValue = new StringBuffer();

pw.println(list.size());

Class tClass = list.get(0).getClass();

//获得类名称(只含类名称不含包名)

String className = tClass.getSimpleName();

//获得所有的属性名称

Field[] fields = tClass.getDeclaredFields();

//获得该类中所有的方法名称(不包括父类)

Method[] methods = tClass.getDeclaredMethods();

for(Field field:fields){

Field.setAccessible(fields,true);

sbTitle.append(field.getName()+",");

}

pw.println(sbTitle.substring(0, sbTitle.length()-1));

sbTitle.setLength(0);

for(int i=0;i

//System.out.println("className:"+className);

//System.out.println("fields:"+fields.length);

for(Field field:fields){

//访问类中的私有属性时需要设置该属性

Field.setAccessible(fields,   true);

//System.out.println("field:--  "+field.getName()+"   ---value:---"+field.get(list.get(i)));

sbValue.append(field.get(list.get(i))+",");

}

pw.println(sbValue.substring(0, sbValue.length()-1));

sbValue.setLength(0);

}

pw.flush();

pw.close();

}

如此调用:

List userList = new ArrayList();

for(int i=0;i<10;i++){

User user = new User();

user.setName("carl"+i);

user.setPassword(""+i);

userList.add(user);

}

try {

writeTxtFile(userList,"d:\\1.txt");

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值