最近研究压缩csv文件出力,根据网上资料,整理了一套用不导包的例子。
引包
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream;
调用
//临时csv作成 File csvFile1 = CsvCreator.out(entities); String url2 = csvFile1.getPath(); url2 = url2.substring(0, url2.length() - 3); fileChannelCopy(csvFile1.getPath(), url2 + ".csv"); // ZIP压缩包 zip(url + ".zip", new File(url + ".csv")); StringBuilder uri = new StringBuilder(); uri.append(url); uri.append(".zip"); // 下载 downloadFile(request, response, uri); // 删除临时文件 deleteFile(url + ".csv"); deleteFile(url + ".zip");
文件复制
private void fileChannelCopy(String ChangeBeforeName, String ChangeAfterName) { File s = new File(ChangeBeforeName); File t = new File(ChangeAfterName); FileInputStream fi = null; FileOutputStream fo = null; FileChannel in = null; FileChannel out = null; try { fi = new FileInputStream(s); fo = new FileOutputStream(t); in = fi.getChannel(); out = fo.getChannel(); in.transferTo(0, in.size(), out); } catch (IOException e) { e.printStackTrace(); } finally { try { fi.close(); in.close(); fo.close(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }
压缩文件
private void zip(String zipFileName, File inputFile) throws Exception { System.out.println("Start..."); ZipOutputStream out = new ZipOutputStream(new FileOutputStream( zipFileName)); BufferedOutputStream bo = new BufferedOutputStream(out); zip(out, inputFile, inputFile.getName(), bo); bo.close(); out.close(); System.out.println("End..."); } private void zip(ZipOutputStream out, File f, String base, BufferedOutputStream bo) throws Exception { if (f.isDirectory()) { File[] fl = f.listFiles(); if (fl.length == 0) { out.putNextEntry(new ZipEntry(base + "/")); System.out.println(base + "/"); } for (int i = 0; i < fl.length; i++) { zip(out, fl[i], base + "/" + fl[i].getName(), bo); } } else { out.putNextEntry(new ZipEntry(base)); System.out.println(base); FileInputStream in = new FileInputStream(f); BufferedInputStream bi = new BufferedInputStream(in); int b; while ((b = bi.read()) != -1) { bo.write(b); } bi.close(); in.close(); } }
下载
private void downloadFile(HttpServletRequest request, HttpServletResponse response, StringBuilder uri) throws IOException { StringBuffer filename = new StringBuffer(); filename.append(uri); File file = new File(filename.toString()); StringBuffer sb = new StringBuffer(); String name = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".zip"; sb.append("attachment; filename=").append(name); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); response.setContentType("application/x-msdownload;charset=UTF-8"); response.setHeader("Content-Disposition", new String(sb.toString() .getBytes(), "Windows-31J")); FileInputStream inputStream = new FileInputStream(file); OutputStream outputStream = response.getOutputStream(); byte[] buffer = new byte[1024]; int i = -1; while ((i = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, i); } outputStream.flush(); outputStream.close(); inputStream.close(); }
删除临时文件
private void deleteFile(String sPath) { File file = new File(sPath); if (file.isFile() && file.exists()) { file.delete(); } return; }
相关推荐
CSV(Comma Separated Values)文件是一种非常常见的数据交换格式,尤其在编程和数据分析领域广泛使用。它以纯文本形式存储表格数据,每一行代表一个记录,列与列之间通过逗号分隔。由于其简单易读且跨平台兼容性好...
java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。
VB.NET Web开发中CSV出力实例
海上风电出力预测的用电数据分为训练组和测试组两大类,主要包括风电场基本信息、气象变量数据和实际功率数据三个部分。风电场基本信息主要是各风电场...数据集文件的格式为csv格式。A榜包括2个训练集和2个测试集数据。
总的来说,"WPF_随机生成数据并以CSV形式出力"是一个很好的学习项目,涵盖了WPF的基本元素(如XAML、事件处理)、C#的编程概念(如随机数生成、文件操作)以及MVVM模式的应用。对于WPF初学者,这将是一个很好的起点...
例如,数据分析师可能不熟悉Cobol,但是可以通过CSV来访问和分析这些数据。此外,它也可以简化系统迁移过程,当需要将基于Cobol的老系统数据迁移到现代平台时,可以先将Cobol文件转为CSV,再导入新的数据库系统。 ...
2012年,全年的风电场风速数据(每5min一测)共105121个风速数据及出力数据[m/s],表头Year Month Day Hour Minute power (MW) wind speed at 100m (m/s)
log4j文件修改出力位置即可,放在Main文件同一个包下。
训练集和测试集的描述如下: 训练集有train_1.csv, train_2.csv, train_3.csv, train_4.csv共4个文件,测试集有test_1.csv,test_2.csv,test_3.csv,test_4.csv共4个文件,分别为电场1,电场2,电场3,电场4的训练集...
而“guang.m”文件,根据其扩展名,很可能是使用MATLAB编程语言编写的一个脚本或函数,用于进行光伏出力的计算和分析。MATLAB是一种广泛应用于科学计算、数据分析和算法开发的软件,特别适合处理这种需要数值计算和...
2024DCIC光伏发电出力预测_2024DCIC-Photovoltaic
【分布式电源与间歇性电源出力不确定性】 随着全球能源危机和环保需求的增加,分布式电源,尤其是风能和太阳能等清洁可再生能源的并网成为研究热点。间歇性分布式电源,即风力发电和光伏发电,由于受天气条件影响,...
- "shengjing_network.zip"可能是一个包含已训练好的神经网络模型、相关代码或进一步数据的压缩文件。 综上所述,利用MATLAB神经网络进行光伏出力预测是一个涉及数据预处理、模型构建、训练和性能评估的综合过程。...
【数据目录】包含以下所示的数据文件: A_submit_example.csv A榜-测试集_海上风电...数据集文件的格式为csv格式。A榜包括2个训练集和2个测试集数据。 基本信息:存储的是五个风电场的位置和装机容量等信息,包括:
标题中的"GA_BPprediction_光伏出力_photovoltaic_光伏预测_光伏出力预测_bp神经网络matlab" 涉及的是一个基于遗传算法(GA)优化的BP神经网络模型,用于预测光伏系统的发电出力。这个模型利用了MATLAB编程环境来...
总的来说,利用蒙特卡罗模拟在MATLAB中生成风电和光伏出力场景,不仅可以帮助我们理解和量化可再生能源的不确定性,还能辅助我们制定更有效的能源管理和调度策略。这种技术的应用对于推动清洁能源的发展,保障电力...
csv格式文件,第一列为时间,中间列为风力发电相关的特征,最后一列为预测值 数据说明: 用测风塔中的测量数据,包括: 10 30 50 70米风速 30 50 70 米风向 还有气温、气压、湿度 TIME,WS10,DIR10,WS30,DIR30,WS50,...
“Wind_power_output_estimation.rar”压缩包文件提供了相关工具,用于分析风电场的发电出力数据。通过这个程序,我们可以对风电出力的状态进行细致的研究,了解其在时间序列上的动态变化规律。风电出力的概率分布和...
蒙特卡洛模拟风电场随机出力,产生多种场景
电力系统风机出力模型,利用威布尔分布构建风机出力,加入电力系统中可得近似分析,对新能源接入电力系统研究提出新思路