通过反射的形式把集合的数据打印到log里

以下是我使用反射的形式打印到文本里。

string fname = Directory.GetCurrentDirectory() + "\\LogFile.log";
FileInfo finfo = new FileInfo(fname);
if (!finfo.Exists)
{
FileStream fs;
fs = File.Create(fname);
fs.Close();
finfo = new FileInfo(fname);
}
if (finfo.Length > 1024 * 1024 * 10)
{
/**/
///文件超过10MB则重命名
File.Move(Directory.GetCurrentDirectory() + "\\LogFile.log", Directory.GetCurrentDirectory() + DateTime.Now.TimeOfDay + "\\LogFile.log");
/**/
///删除该文件
//finfo.Delete();
}
using (FileStream fs = finfo.OpenWrite())
{
/**/
///根据上面创建的文件流创建写数据流
StreamWriter w = new StreamWriter(fs);
w.BaseStream.Seek(0, SeekOrigin.End);
w.Write("{0} {1} \n\r", DateTime.Now.ToLongDateString(), DateTime.Now.ToLongTimeString());
var sele = db.NikeDTCDailyReport.Where(p => true).ToList();

//创建一个Ilist Dictionary键对值的形式存储
IList<Dictionary<string, object>> id = new List<Dictionary<string, object>>();

//循环sele集合里的值
foreach (var item in sele)
{

//获取item的Type实列  搜索GetProperties当前Type属性 Instance指定实列成员 public指定公共属性

//DeclaredOnly只考虑在所提供类型的层次结构上声明的成员不考虑继承成员
PropertyInfo[] prop = item.GetType().GetProperties(BindingFlags.Instance|BindingFlags.Public|BindingFlags.DeclaredOnly);

//把prop的 循环放入values里
Dictionary<string, object> values = new Dictionary<string, object>();
foreach (PropertyInfo preper in prop)
{
values.Add(preper.Name, preper.GetValue(item, preper.GetIndexParameters()));
}
id.Add(values);
}

//打印Dictionary里的valuezhi值
foreach (var item in id)
{
foreach (var item1 in item)
{
w.WriteLine(item1.Value);
}
w.WriteLine("\n----------------------------");
}
w.Flush();
w.Close();
}

时间: 2024-08-26 14:47:16

通过反射的形式把集合的数据打印到log里的相关文章

NPOI操作excel——利用反射机制,NPOI读取excel数据准确映射到数据库字段

> 其实需求很明确,就是一大堆不一样的excel,每张excel对应数据库的一张表,我们需要提供用户上传excel,我们解析数据入库的功能实现. 那么,这就涉及到一个问题:我们可以读出excel的表头,但是怎么知道每个表头具体对应数据库里面的字段呢? 博主经过一段时间的思考与构思,想到一法:现在的情况是我们有excel表A,对应数据库表B,但是A与B具体属性字段的映射关系我们不知.那我们是不是可以有一个A到B的映射文件C呢? 我想,说到这,大家就很明了了... 第一步:为每张excel创建一个与

Java://Comparator、Comparable的用法(按照要求将set集合的数据进行排序输出):

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; //comparator.comparable的用法(按照要求将map集合的键值对进行顺序输出) import java.util.List; public class Test { public static <T> void sop(T t) { System.out.println(t); } public stat

使用Stack堆栈集合大数据运算

使用Stack堆栈集合大数据运算 package com.sta.to; import java.util.Iterator; import java.util.Stack; public class DaMax { public void jiaFa(String value1, String value2) { /** * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com * @author 小沫 */ // 把字符串用toCharArray拆成字符 char[] c1

Intent List、对象、集合传递数据相联Parcelable和Comparable类

public class IMMessage implements Parcelable, Comparable<IMMessage> { public static final String IMMESSAGE_KEY = "immessage.key"; public static final String KEY_TIME = "immessage.time"; public static final int SUCCESS = 0; public

第三章使用集合相关数据

ArrayList是一种动态数组,在new的时候,可以不指定长度,当你添加数据的时候,发现容量不够,他会自动扩容.引入system.collections 命名空间--实例化ArrayList对象using system.collections(引入命名空间)ArrayList engineers=new ArrayList();实例化一个对象ArrayList engineers=new ArrayList(5)可指定长度 C#3.0语言的新特征由一系列元素初始化构成,包围在{和}之间并使用逗

mongodb的数据库,集合,数据可介绍。

我们知道,在关系型数据库里面有数据库.数据表.表里面是一行一行的数据.而mongodb是非关系型数据库,它有的是数据库.集合.文档,分别对应关系型里面的数据库.数据表.和表里面一行一行的数据.在mongodb里,文档构成集合,集合构成数据库 关系组成: 1.文档 这个文档,可不是平常说的word文档,在mongodb里面,文档指的是集合里面的一行数据.来看一下它的样子. 可以看到,一个文档有三部分组成,id(用来表示一行文档),键名(一个文档中不可出现重复的键名,且区分大小写)和键值,一行文档中

hashSet和List集合存储数据的结构

List集合存储数据的结构 堆栈:先进后出 例如担架 先进去的 后出来 --------------------------------------------------------------------------------------------------------- 队列:先进的先出 后进的后出 ---------------------------------------------------------------------------------------------

底子数据类型,数据内部存储及数据打印办法

i1底子数据类型有:    char\short\int\unsigned\long\float\double;2数据内部存储 数据内部存储是由"0101二进制构成,当次序员输入一个值 时,内部会转换成补码存储,只是单纯地存储数据,也不知道 将来输出是什么姿势. 例如:inta=-1;unsignintb=0xFFFFFFFF; 这两个数在内部存储是一样的3数据打印办法: 数据打印办法便是抉择内部存储的数据将来输出是什么姿势的上 述中 a和b值在内部存储是一样的所以只要它打印办法一样 效果必定一

java跨平台、对话框、二进制数据打印

java跨平台 public class JavaTest{ public static void main(String[] args){ System.out.println("java Test for windows/linux"); } } windows,linux平台下面, 使用javac JavaTest.java; java JavaTest命令进行测试,顺利通过. 编译中间产生的JavaTest.class 可以放到不同的jvm虚拟机中进行解释执行. 对话框 Swi