`
Sunflower-13
  • 浏览: 74007 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

更正--提高文件复制性能

 
阅读更多
      更正一下上午发的用FileInputStream和FileOutputStream复制文件,利用数组的方法改善其性能。

       首先要多谢各位大神的指点,小生刚接触Java不久,人也不够聪明,很多都不太会,想法太简单,写出的东西也就过于简单。还得请各位大神多多指教啊  
      
        下面要回归到主题,讲一下自己考虑不周全的地方,虽然用了数组来作为缓存区,但是没考虑文件的大小,及数组的长度。听了大神的指点后,便在数组长度方面做了测试,数组的长度设置大一些速度相对快一些,但是也并不是越大越好,因为数组长度越大占用的内存就越大,同样会降低速度,所以最适合的数组长度要经过测试才能知道多大最合适,我测试的时候数组的长度在100000的时候速度相对来说是最快的。(这个可能要根据情况不同来定 )下面就附上我听大神指点后再写的代码。

/**
* 提高文件复制效率:例如要将F:\sun\上课笔记\cc.txt中的内容复制到F:\sun\上课笔记\q.txt中, cc.txt的大小随意 */
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Homeworkcopy3 {
public static void main(String[] args) {
try {
//根据文件路径创建文件输入流
FileInputStream input=new FileInputStream("F:\\sun\\上课笔记\\cc.txt");

// 根据文件路径创建文件字节输出流, 如果文件不存在,就会自动创建这个文件
FileOutputStream output=new FileOutputStream("F:\\sun\\上课笔记\\q.txt");

//创建一个文件复制前的时间
long time = System.currentTimeMillis();


//创建一个字符数组并给它的长度赋值,长度可以自己任意定,用来作为中间数组存放流中的数据
byte[] b=new byte[500];


try {
//输入流中的字节数如果不为0就继续进行读取和写入
while(input.available()!=0){

//从输入流中读取字节填充b数组
input.read(b);

//将b数组中的所有字节写到输出流中
output.write(b);
}
//刷新此输出流并强制写出所有缓冲的输出字节
output.flush();

//关闭输出流
output.close();

//关闭输入流
input.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//定义一个结束时间,计算文件复制时间
long time1 = System.currentTimeMillis();
System.out.println(time1-time);


} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

1
1
分享到:
评论
1 楼 Sun_TW 2016-10-11  
写得真的好 加油

相关推荐

    014河北职称计算机考试答案(操作题数据库1-5).pdf

    - Copy Structure To:复制结构,用于复制表结构到另一个新的数据表文件。 5. 索引操作 - FoxPro可以对数据表进行索引,以便快速查找和排序数据。索引文件通常具有.DBF扩展名,且与数据表有相同的基本名称,后缀...

    u-boot2011.06移植到s3c2410

    - 复制速度慢可能是由NAND Flash本身的性能限制导致的。 - 可以尝试优化复制逻辑,比如减少不必要的内存访问。 - 考虑使用DMA或其他硬件加速方式提高复制效率。 **4.8 不断重启** - 如果系统不断重启,可能是内存...

    易语言程序免安装版下载

    修改高级表格支持库,允许“复制选定文本()”“剪切选定文本()”在“允许选择块”属性为假时复制剪切当前单元格中的文本。 18. 修改扩展界面支持库三,为“高级选择夹”增加“不点燃选中子夹”属性。 19. 修改XML...

    阿里云 专有云企业版 V3.6.1 文件存储NAS 产品简介 - 20181105.pdf

    阿里云专有云企业版V3.6.1的文件存储NAS是一款针对企业级客户设计的高可用、高性能、高可靠性的分布式文件系统服务。它提供了无缝集成到云计算环境的能力,支持多种计算服务,如ECS(弹性计算服务)和HPC(高性能...

    rar压缩软件.rar

    不和其它开关一起使用,'ch' 命令仅复制压缩文件数据而不修改它。 例如: 设置压缩文件时间为最新的文件: rar ch -tl files.rar cw 写压缩文件注释到指定文件。 输出文件格式依赖于 -sc 开关。 如果...

    如何在ESXi5上传下传输文件.pdf

    SFTP是SSH的一部分,它为文件传输提供了一个安全的通道,而SCP则基于SSH来实现文件的复制。使用这两种协议都需要远程服务器的SSH服务允许相应的文件传输协议。 为了能够使用SecureCRT进行文件传输,首先需要确保...

    AUTOSAR-SWS-E2ELibrary.pdf

    例如,4m配置文件适用于对性能有较高要求的应用场景,而08配置文件则提供了更强的保护级别。 2. **端到端保护机制**:通过在数据包中增加序列号和校验和等附加字段,可以有效防止数据篡改和重播攻击。这些附加字段...

    「2013级第4学月专业考试题」.pdf

    用户可以通过磁盘碎片整理来优化文件布局,提高读写速度。 7. 快捷键操作: - 打开“工具管理器”对话框可以使用Windows徽标键+U键的组合。 8. 网络操作系统: - Windows NT、Novell是网络操作系统,而Windows ...

    BB1407openwrt-RG100A_DB120-squashfs-cfe.bin

    Perl是一门语言,很多工作都是内部命令完成,不需要调用外部命令,性能有很大的提高,同时也降低了对内存的占用,我的路由是wndr3700,在同步文件时内存占用在8M上下,cpu占用在20%上下,比bash版降低很多,特别是...

    IEC_TS_60034-2-3-2013.pdf

    在版权方面,IEC标准的版权所有,除非特别说明,否则任何人不得以任何形式或任何手段复制或利用这些标准,包括但不限于复印和微缩影片,除非获得IEC或IEC成员国家委员会的书面许可。 综上所述,IEC/TS 60034-2-3:...

    WMM Power-Save 1.5

    - **更正了技术文档中的错误**:针对之前版本中存在的技术性错误进行了修正,例如在特定测试步骤中修改了参数设置,确保文档的准确性和实用性。 - **去除了过时的内容**:删除了一些不再适用的规定或参考文献,例如 ...

    WINRAR5.0正式注册版

    只有文件数据可以被更正。压缩文件 修复成功后,您可能需要对保存的文件创建一个新的恢复记录。 新恢复记录不再是基于512字节区块,而是有更复杂的数据结构。所以不可能指定区块的 大小。对于RAR 5.0 压缩文件 rr...

    ug585-Zynq-7000-TRM.pdf

    2. Xilinx不承担更正材料中错误的义务,也不负责通知材料的更新或产品规格的变更。未经过Xilinx的书面同意,禁止复制、修改、分发或公开显示材料。 3. Xilinx产品并非设计或意图为“故障安全”的,也就是说它们不...

    2021-2022计算机二级等级考试试题及答案No.3070.docx

    - **应用**:理解不同类型存储器的特点有助于优化程序性能。 ### 文件菜单 - **知识点**:“文件”菜单 - **解释**:“文件”菜单底部显示的通常是最近打开过的文件名。 - **应用**:这为用户提供了快速访问之前...

    2021-2022计算机二级等级考试试题及答案No.12022.docx

    根据给定文件的信息,我们可以总结出一系列与计算机二级等级考试相关的知识点。这些知识点涉及了办公软件的基本操作、数据库查询、编程基础以及计算机基础知识等各个方面。 ### 1. Word中的复制功能 - **知识点概述...

    xinlinx的SDI设计文件

    通过对xinlinx的SDI设计文件的分析,我们了解到Xilinx公司如何在其高性能Virtex-5 FPGA平台上实现音频和视频连接性的解决方案,特别是针对广播行业的需求。XAPP1014文档提供了详尽的技术指导和参考设计,对于那些...

    IEC 60974-10 2014

    该文件详细规定了电磁兼容性在弧焊设备中的应用要求,旨在确保焊机在产生和使用电磁能量时不会对其他设备产生过量的电磁干扰,同时也能在一定程度的电磁干扰环境中正常工作,不出现性能降低的情况。 在深入了解IEC ...

    ug850-zc702-eval-bd

    - 用户未经Xilinx事先书面同意,不得复制、修改、分发或公开显示材料。 - 某些产品可能受到Xilinx有限保证的条款和条件的约束,具体条款可以在Xilinx的销售条款中找到。 - Xilinx产品的IP核心可能受到由Xilinx发出的...

    Spartan-6 PCB设计

    根据给定的文件信息,以下是对“Spartan-6 FPGA PCB设计”知识点的详细说明: Spartan-6 FPGA是Xilinx公司生产的一款基于28nm工艺技术的现场可编程门阵列(FPGA)系列。该系列 FPGA 为开发者提供了灵活、高性价比的...

Global site tag (gtag.js) - Google Analytics