最近研究压缩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)文件是一种非常常见的数据交换格式,尤其在编程和数据分析领域广泛使用。它以纯文本形式存储表格数据,每一行代表一个记录,列与列之间通过逗号分隔。由于其简单易读且跨平台兼容性好...
VB.NET Web开发中CSV出力实例
总的来说,"WPF_随机生成数据并以CSV形式出力"是一个很好的学习项目,涵盖了WPF的基本元素(如XAML、事件处理)、C#的编程概念(如随机数生成、文件操作)以及MVVM模式的应用。对于WPF初学者,这将是一个很好的起点...
海上风电出力预测的用电数据分为训练组和测试组两大类,主要包括风电场基本信息、气象变量数据和实际功率数据三个部分。风电场基本信息主要是各风电场...数据集文件的格式为csv格式。A榜包括2个训练集和2个测试集数据。
例如,数据分析师可能不熟悉Cobol,但是可以通过CSV来访问和分析这些数据。此外,它也可以简化系统迁移过程,当需要将基于Cobol的老系统数据迁移到现代平台时,可以先将Cobol文件转为CSV,再导入新的数据库系统。 ...
2012年,全年的风电场风速数据(每5min一测)共105121个风速数据及出力数据[m/s],表头Year Month Day Hour Minute power (MW) wind speed at 100m (m/s)
训练集和测试集的描述如下: 训练集有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的训练集...
log4j文件修改出力位置即可,放在Main文件同一个包下。
而“guang.m”文件,根据其扩展名,很可能是使用MATLAB编程语言编写的一个脚本或函数,用于进行光伏出力的计算和分析。MATLAB是一种广泛应用于科学计算、数据分析和算法开发的软件,特别适合处理这种需要数值计算和...
【分布式电源与间歇性电源出力不确定性】 随着全球能源危机和环保需求的增加,分布式电源,尤其是风能和太阳能等清洁可再生能源的并网成为研究热点。间歇性分布式电源,即风力发电和光伏发电,由于受天气条件影响,...
- "shengjing_network.zip"可能是一个包含已训练好的神经网络模型、相关代码或进一步数据的压缩文件。 综上所述,利用MATLAB神经网络进行光伏出力预测是一个涉及数据预处理、模型构建、训练和性能评估的综合过程。...
2024DCIC光伏发电出力预测_2024DCIC-Photovoltaic
总的来说,利用蒙特卡罗模拟在MATLAB中生成风电和光伏出力场景,不仅可以帮助我们理解和量化可再生能源的不确定性,还能辅助我们制定更有效的能源管理和调度策略。这种技术的应用对于推动清洁能源的发展,保障电力...
“Wind_power_output_estimation.rar”压缩包文件提供了相关工具,用于分析风电场的发电出力数据。通过这个程序,我们可以对风电出力的状态进行细致的研究,了解其在时间序列上的动态变化规律。风电出力的概率分布和...
蒙特卡洛模拟风电场随机出力,产生多种场景
电力系统风机出力模型,利用威布尔分布构建风机出力,加入电力系统中可得近似分析,对新能源接入电力系统研究提出新思路
在这个特定的压缩包文件中,“基于风电不确定出力的风电调控系统”是电子政务在能源管理领域的具体应用,尤其关注可再生能源的调度与控制。 风电调控系统是为了解决风电这种可再生能源发电量的不稳定性问题。由于...
例如,文件中的"mean_1.m"、"mean_2.m"和"mean_3.m"可能分别代表了基于不同时间段(如小时、日、周平均)的风电出力预测模型。 "源码软件"标签暗示了这些文件可能是实现以上功能的MATLAB代码,MATLAB是一种广泛用于...
通过实际的代码实现,学习者可以深入理解风电和光伏出力的随机性,以及如何在实际系统中进行不确定性分析,这在当前可再生能源占比不断提升的背景下显得尤为重要。 总的来说,这份资料提供了一个完整的框架,从理论...
离心泵是化工、电力生产中的重要输送设备,凝结水离心泵(凝结水泵)是电厂中的...分析了凝结水泵发生出力不足的原因,并通过对凝结水泵入口蝶阀进行改造,消除了出力不足的设备缺陷,提高了凝结水泵运行的安全性和经济性。