java 生成csv文件


java生成csv

 @Test
	public void test(){
		List<Map> queryList = new ArrayList<>();
		for (int i = 0; i < 10; i++) {
			Map queryMap = new HashMap();
			queryMap.put("pageNum",1);
			queryMap.put("pageSize",10);
			JSONObject jsonObject = new JSONObject (queryMap);
			System.out.println(jsonObject);
			queryList.add(queryMap);
		}
		System.out.println(queryList);
		LinkedHashMap<String, String> headMap = new LinkedHashMap<String, String>();
		Iterator<?> it = queryList.get(0).entrySet().iterator();
		while(it.hasNext()){
			Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
			String key =  entry.getKey();
			headMap.put(key,key);
		}

		createCSVFile(queryList,headMap,"C:\\Users\\wdy\\Desktop\\","query_content_test_data");

	}
	/**
	 * 创建csv文件
	 * @param exportData
	 * @param map
	 * @param outPutPath
	 * @param fileName
	 * @return
	 */
	public static File createCSVFile(List exportData, HashMap map, String outPutPath,
									 String fileName) {
		File csvFile = null;
		BufferedWriter csvFileOutputStream = null;
		try {
			File file = new File(outPutPath);
			if (!file.exists()) {
				file.mkdir();
			}
			//定义文件名格式并创建
			csvFile = File.createTempFile(fileName, ".csv", new File(outPutPath));
			System.out.println("csvFile:" + csvFile);
			// utf8使正确读取分隔符","
			csvFileOutputStream = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(
					csvFile), "UTF-8"), 1024);
			System.out.println("csvFileOutputStream:" + csvFileOutputStream);
			// 写入文件头部
			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();
					csvFileOutputStream.write((String) BeanUtils.getProperty(row,
							(String) propertyEntry.getKey()));
					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;
	}
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM