通过字节流复制大文件内容到指定的文件

package com.neusoft.copyfile;

/**
 * @time  2014-8-15 上午10:32:46
 * @author new
 * @function 复制文件内容到指定的文件
 *
 */

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 *
 */
public class CopyFileByStream {

	public static void main(String[] args) throws IOException {

		long start=System.currentTimeMillis();

		CopyFileByStream cFileByStream=new CopyFileByStream();
		// 创建一个 FileInputStream对象
		String oldFileName="123.avi";
		String newFileName="copy_"+oldFileName;
		File oldFile=new File(oldFileName);
		File newFile=new File(newFileName);
		if (oldFile.exists()) {
			if (!newFile.exists()) {
				cFileByStream.copyFile(oldFile, newFile);
			}else {
				System.out.println("老大,"+newFileName+"文件已经存在,我马上着手删除!");
				newFile.delete();
				cFileByStream.copyFile(oldFile, newFile);
				System.out.println("老大,"+newFileName+"文件已经准备好,请用!");
			}
		}else {
			System.out.println("老大,你说的那个文件我没找到啊,我停下啦,您再找找,小弟我无能为力了!");
		}
        long end=System.currentTimeMillis();
        System.out.println((end-start)/1000.0+"秒");
		System.out.println("结束");
	}

	/**
	 * @function 复制文件
	 * @param oldFile
	 * @param newFile
	 * @throws IOException
	 */
	public void copyFile(File oldFile,File newFile) throws IOException{
		FileInputStream fInputStream=new  FileInputStream(oldFile);
		FileOutputStream fOutputStream=new FileOutputStream(newFile,true);
		// 确定文件的大小
		//int fileSize = fInputStream.available();

		byte[] strByte = new byte[1024*1024*2];
		System.out.println("设置的缓冲区大小:"+strByte.length/1024.0+"K");
		int len=0;
		int count=0;
        while((len=fInputStream.read(strByte))!= -1){
           // String str1=new String(strByte);
            System.out.println(len/1024.0+"K 缓冲区循环第"+(++count)+"次");
            fOutputStream.write(strByte,0,len);
        }

        fOutputStream.close();
        fInputStream.close();
	}

}

控制台显示结果:
老大,copy_123.avi文件已经存在,我马上着手删除!
设置的缓冲区大小:2048.0K
2048.0K 缓冲区循环第1次
2048.0K 缓冲区循环第2次

2048.0K 缓冲区循环第3次

.......

2048.0K 缓冲区循环第77次
2048.0K 缓冲区循环第78次
2048.0K 缓冲区循环第79次
415.140625K 缓冲区循环第80次
老大,copy_123.avi文件已经准备好,请用!
3.484秒
结束

时间: 2024-11-08 21:50:03

通过字节流复制大文件内容到指定的文件的相关文章

asp.net 多个css文件内容自动放到一个文件中

没事做,写了一个把多个css文件合并到一个文件中的方法,因为开发时,为了方便修改和共用css,我们可能会在页面引用4.5个css文件 ,但是实际运行中,我们是手动把css放到html 中去的 ,这样运行时页面显示快点,实际上是如此,但是每次修改的工作量是很大的,本地修改之后不能原封不动地放到服务器上去,在服务器上又要手动修改页面中的css. 在asp.net mvc模式中,我们可以把css的内容放到一个部分视图中,在head标签之间包含这个视图,那样运行时css就在html中了,我下面这个方法就

Java多种方式读文件,追加文件内容,等对文件的各种操作

一.多种方式读文件内容. 1.按字节读取文件内容 2.按字符读取文件内容 3.按行读取文件内容 4.随机读取文件内容 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStre

Linux系统下将多个文件内容合并为一个文件的方法

  现在的工作最重视的是什么?当然是工作能力和工作效率,很多使用Linux系统的小伙伴们都遇到同意一个问题,想要导入数据库的时候,如果一个文件一个文件的导入的话,进程很慢,拖延时间,从而降低了工作效率.所以想找到一个新方法,可以将多个文件合成一个,这样不仅导入方便,而且速度也快,似乎是个不错的方法呢!下面小编就教大家Linux系统中如何将多个文件合成为一个,希望对大家有用! 在iDB Cloud 中发现导出的数据库文件是按照每个表生成的SQL文件,这么多单独的文件再导入到其他数据库中是个麻烦事,

求代码,复制一个文件夹到指定路径文件夹。在线等答案哦。谢谢啦

问题描述 请求帮忙哈,本人菜鸟.现在需要一个帮忙,写一个小程序,像执行文件一样的exe,点击能自动运行.程序实现功能是复制文件夹文件名A01或者以B开头的文件到指定路径D:pic下. 解决方案 解决方案二:复制完毕后在程序里调用另外一个程序的autopi.exe.解决方案三:System.IO.Directory.GetFiles系列取得文件列表等,自己根据文件名判断System.IO.Directory.Move移动解决方案四:不会编啊.最好有现成的哈.嘿嘿.解决方案五:用dos命令多好啊!解

Linux 中清空或删除大文件内容的五种方法_Linux

在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件.那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清空文件内容的方法. 注意: 由于再Linux中一切皆文件,你需要时刻注意,确保你将要清空的文件不是重要的用户文件或者系统文件.清空重要的系统文件或者配置文件可能会引发严重的应用失败或者系统错误. 提示:在下面的示例中,我们将使用名为 access.log 的文件来作为示例样本. 1. 通过重定向到 Nul

vbs向指定的文件添加内容的函数_vbs

复制代码 代码如下: '向指定的文件写字符串,第三个参数指定是否删除原来的内容 Function Z_WriteFile(sFileName, sText, bAppend) Dim fs, fso, iomode if bAppend = True Then iomode = 8 'ForAppending else iomode = 2 'ForWriting end if set fs = CreateObject("Scripting.FileSystemObject") se

Java读取文件内容的小例子

Java 提供 BufferedReader 类用来从流中读取字符串.FileReader 类用来读取文件.我们用这两个类来读取文件中的字符串. 下面是一个例子: import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class ReadFile{ public static void main(String[] args){ String path="c:/1.txt&

PHP读取文件内容后清空文件示例代码

 这篇文章主要介绍了PHP读取文件内容后如何清空文件,需要的朋友可以参考下 代码如下: $fh = fopen($path, "r+");    if( flock($fh, LOCK_EX) ){//加写锁  $old_content=json_decode(fread($fh,filesize($path)),true);    $old_content=$old_content.$new_content;  ftruncate($fh,0); // 将文件截断到给定的长度  re

c++-读取文件内容时怎么处理空格问题?

问题描述 读取文件内容时怎么处理空格问题? 在读取一个文本内容时,空格代表的字节数有时候是1有时候是2,所以读出来的字节数就会不一样,请问怎么处理空格问题??用C++编的代码 解决方案 文件读取,读取带空格字符串的问题Android学习笔记之读取文件内容乱码问题Properties文件中的空格问题 解决方案二: 您好,可以考虑用正则表达式来过滤 空格 解决方案三: 过滤一下就可以了啊,,,, 解决方案四: 过滤一下就可以了啊,,,, 解决方案五: 能说下你为啥读出来空格有时时1,有时是2么?难道