/*** * 生成csv文件 * * @param context * @param list * 对象集合 * @param csvName * 对应的文件名称 * @param propertyArray * 属性字符串,逗号分割 */ public static void writeCsvFile(Context context, List list, String csvName, String folder, String propertyArray) { if (list == null || list.isEmpty()) return; // sdcard/com/cela/目录下 String path = DataUtils.getCsvFilePath(folder); File file = new File(path); if (!file.exists()) { file.mkdirs(); } path += csvName; // 判断文件是否存在,如果存在则取出原有数据 List<String[]> originalList = null; try { File f = new File(path); if (f.exists()) { originalList = new ArrayList<String[]>(); CSVReader reader = new CSVReader(new FileReader(path), ','); originalList.addAll(reader.readAll()); } } catch (Exception e) { e.printStackTrace(); } OutputStreamWriter fw = null; CSVWriter csv = null; // 通过反射获取list里面的值 try { fw = new OutputStreamWriter(new FileOutputStream(path), "UTF-8"); csv = new CSVWriter(fw, ','); final int size = list.size(); // 写入原有数据 if (originalList != null && !originalList.isEmpty()) { final int len = originalList.size(); for (int i = 0; i < len; i++) { csv.writeNext(originalList.get(i)); } } // 开始写入对象 for (int i = 0; i < size; i++) { Object obj = list.get(i); Class cla = obj.getClass(); String[] propertys = propertyArray.split(","); String[] values = new String[propertys.length]; for (int j = 0; j < propertys.length; j++) { Field field = cla.getDeclaredField(propertys[j]); String fname = field.getName(); String strLitter = fname.substring(0, 1).toUpperCase(); String getName = "get" + strLitter + fname.substring(1); String setName = "set" + strLitter + fname.substring(1); Method getmethod = cla.getMethod(getName, new Class[] {}); cla.getMethod(setName, new Class[] { field.getType() }); Object value = getmethod.invoke(obj, new Object[] {}); if(value!=null){ values[j] = (String) value.toString(); }else{ values[j] = ""; } } csv.writeNext(values); } } catch (Exception e) { e.printStackTrace(); } finally { if (csv != null) { try { csv.flush(); csv.close(); } catch (IOException e) { e.printStackTrace(); } } } }
相关推荐
在我们需求中需要读取一个csv文件的数据,但是只有旧的csv的几列数据再新写入一个csv文件,而且在旧的数据有空的数据,需要判断旧的csv的空值。可能写的存在不完善!但是应用的需求里面还是能用的
VS2010实现对CSV文件操作,读取CSV文件指定行列的字符串数据,整形数据,浮点型数据,同时相应把数据写入到CSV文件。
java使用jdbc将数据库数据导出到csv文件
存储到CSV文件:代码在每次循环中,通过csv库将美食数据存储到CSV文件中。以追加写入的方式打开CSV文件,使用csv.writer写入每一行的数据,确保数据的完整性和格式正确。 数据可视化:代码使用pandas库读取CSV文件...
正点原子STM32F103ZE f_write生成并写入CSV文件 FATFS实验
源代码十一个简单的例子,他吧把dataset中的数据写入到csv文件中,因为只是一个简单的例子,需要自己先建立一个csv文件
codesys通过文件写入功能块是实现对CSV文件数据的写入 a、数组数据处理,将需要的数据转换成CSV需要的字符序列; b、通过SysFileOpen指令打开文件; c、通过SysFileSetPos设置开始写入的位置,一般设置偏移量为0,全...
对CSV文件的读取和写入,简单操作,利用新手阅读和学习
python将数据写入csv文件
python将数据写入csv文件 要在Python中将数据写入CSV文件,可以使用内置的csv模块。csv模块提供了一组函数和类,用于读取和写入CSV文件。
本作品主要是利用Labview将获取的信息存储进CSV格式文件中,CSV格式文件比较通用,方便以后的操作。
该文档主要介绍java如何操作csv文件,在这里介绍了一个工具包的使用,也黏贴了java对于读取csv文件和写入csv文件时,对于大数据量的处理和安排,有效的解决了处理大数据是内存溢出问题
UE4 C++写入CSV文件,当项目有需要把项目的一些数据进行保存时,可以保存成CSV文件,因为CSV文件可以用Excel打开,这样阅读就非常方便
STM32实现SD卡的fatfs文件系统,写数据生成.csv文件,可以通过网络工具通过以太网下发数据通信。
STM32实现SD卡的fatfs文件系统,写数据生成.csv文件.rar
EasyExcel 并发读取文件字段并进行校验,数据写入到新文件,批量插入数据到数据库 demo
c++实现的读写csv文件
如何将WinCC归档的历史数据导出到EXCEL CSV文件,此压缩包包含文档和附件。详细介绍了开发过程,初学者可以参考。
java实现后端数据导出成csv文件并上传到指定的sftp服务器,主要是使用univocity-parsers来做的csv文件导出以及采用jsch来完成csv文件的sftp上传。
文件中包括读取excel、csv文件,同时可以将读取出的文件内容保存在另外一个excel或csv中。注意excel2003和excel2007调用的jar包也不一样,需要将代码进行修改。2007版的将HSSF改成XSSF,2003相反。csv文件用XSSF