Java输入输出流复制文件所用时间对比_java

废话不多说,关键代码如下所述:

package com.edu.xynu;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOUnitCopy {
//按字节
public static void copyByByte(File srcFile,File destFile) throws IOException{
FileInputStream fis=new FileInputStream(srcFile);
FileOutputStream fos=new FileOutputStream(destFile);
int i;
while((i=fis.read())!=-1){
fos.write(i);
}
fis.close();
fos.close();
}
//按字节数组
public static void copyByByteArray(File srcFile,File destFile) throws IOException{
FileInputStream fis=new FileInputStream(srcFile);
FileOutputStream fos=new FileOutputStream(destFile);
byte []buf=new byte[10*1024];
int i;
while((i=fis.read(buf, 0, buf.length))!=-1){
fos.write(buf, 0, i);
}
fis.close();
fos.close();
}
//字节缓冲流
public static void copyByBuff(File srcFile,File destFile) throws IOException{
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(srcFile));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(destFile));
int i;
while((i=bis.read())!=-1){
bos.write(i);
}
bos.flush();
bis.close();
bos.close();
}
//字节数组批量读取 缓冲输出流写入
public static void copyByBuffArray(File srcFile,File destFile) throws IOException{
FileInputStream bis=new FileInputStream(srcFile);
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(destFile));
byte [] buf=new byte[10*1024];
int len;
while((len=bis.read(buf,0,buf.length))!=-1){
bos.write(buf,0,len);
}
bos.flush();
bis.close();
bos.close();
}
}
package com.edu.xynu;
import java.io.File;
import java.io.IOException;
public class IOUnitsCopyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
long start=System.currentTimeMillis();
// IOUnitCopy.copyByByte(new File("c:\\1.mp3"), new File(
// "c:\\2.mp3"));//90713ms
// IOUnitCopy.copyByByteArray(new File("c:\\1.mp3"), new File(
// "c:\\3.mp3"));//41ms
// IOUnitCopy.copyByBuff(new File("c:\\1.mp3"), new File(
// "c:\\4.mp3"));//556ms
// IOUnitCopy.copyByByteArray(new File("c:\\1.mp3"), new File(
// "c:\\5.mp3"));//30ms
long end=System.currentTimeMillis();
System.out.println(end-start);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

测试文件是

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java输入输出流
java输入输出流、java输出流、java输入流和输出流、java输出流写入文件、java 输入输出流详解,以便于您获取更多的相关知识。

时间: 2024-10-22 22:23:14

Java输入输出流复制文件所用时间对比_java的相关文章

Java输入输出流和文件操作

操作系统中的文件和目录概念 文件与文件系统 文件是信息的一种组织形式,是存储在外部存储介质上的具有标志名的一组相关信息集合. 文件系统用文件概念来组织和管理存放在各种介质上的信息.文件系统提供目录机制实现文件的"按名存取". 目录结构与文件检索 目录是文件系统组织和管理文件的基本单位,目录中保存它所管理的每个文件的基本属性信息(成为文件目录项或文件控制块).除了文件外,目录中还可以包含子目录和文件,子目录中还可以再有子目录和文件,由此构成目录的多级树状结构.文件是这种树状结构的叶子节点

C++中输入输出流及文件流操作总结_C 语言

本文实例为大家分享了C++中输入输出流及文件流操作笔记,供大家参考,具体内容如下 1.流的控制     iomanip          在使用格式化I/O时应包含此头文件.     stdiostream   用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2.类继承关系 ios是抽象基类,由它派生出istream类和ostream类, iostream类支持输入输出操作,iostream类是从istream类和ostream类通过多重继承而派生的类 类ifstrea

【java开发系列】—— java输入输出流

前言 任何语言输入输出流都是很重要的部分,比如从一个文件读入内容,进行分析,或者输出到另一个文件等等,都需要文件流的操作.这里简单介绍下reader,wirter,inputstream,outputstream的使用方法.其实Apache commons里面有个方法IOUtils可是实现方便快捷的流拷贝,感兴趣的可以参考官方文档. JAVA的输入输出流有两种,一种是字节流(InPutStream,OutPutStream),一种是字符流(Reader,Writer). 字节流是普遍适用的,比如

请教一个关于java输入输出流的问题

问题描述 非图形界面程序:假如现在有两个线程a和b,假如a线程是用来接收其他网络socket请求的,一旦接收到其他客户端发来socket连接请求,就输出一句话System.out.println("connect");没接收到的时候就被阻塞着:而b线程是用来发送信息的我的问题是,当我正在b线程里输入一句话,正输到一半,还没敲回车的时候,a线程收到一个连接请求,输出的"connect"字符串正好接在我刚输入的内容后面,并且回车了,这时候我继续输入,虽然前后两段信息发送

类库-C++输入输出流关于文件读取

问题描述 C++输入输出流关于文件读取 请问fstream类库有没有成员函数,可以从一篇文章中读取一个一个的单词(以空格分开),我用操作符>>读取文件时,它不会忽略空格,而是一直往下读,求怎么解决? 解决方案 没有,自己读出来,自己根据规则解析 解决方案二: 系统提供的功能,只提供读取字符串,没有解析.因为各人提供的字符串格式不同,没有办法解析.解析的过程,只能自己在读取到字符串后自己完成.如果想结果,可以试试 CTRL + Z.( windows中的命令行程序是按Ctrl+Z,然后回车输入E

java 输入输出流 关闭-关于Java输入输出流关闭的问题。。。

问题描述 关于Java输入输出流关闭的问题... 在学java时老师一直强调要用完流要关闭流,但有一个问题我一直没清楚,就是装饰流该怎么个关闭,通常我们是这样关闭的: ... FileWriter fw = new FileWriter(fileName); BufferedWriter bw = new BufferedWriter(fw); ... fw.close(); bw.close(); ... 但我感觉太累赘,既然fw被bw装饰了,bw关闭的同时是否fw也被关闭呢? 或者fw被关闭

java 文件输入输出流-关于文件输入输出流的问题,我的实现不了

问题描述 关于文件输入输出流的问题,我的实现不了 import java.io.*; public class Test01 { public static void main(String args[]) throws IOException { BufferedReader sin=new BufferedReader(new InputStreamReader (System.in));//键盘输入流 String str=sin.readLine(); File f=new File("

Java输入输出流的使用详细介绍_java

1.什么是IO       Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读写数据的标准方法.任何Java中表示数据源的对象都会提供以数据流的方式读写它的数据的方法.         Java.io是大多数面向数据流的输入/输出类的主要软件包.此外,Java也对块传输提供支持,在核心库 java.nio中采用的便是块IO. 流IO的好处是简单易用,缺点是效率较低

c++ 输入输出流-c++文件流相关问题,编译通过,但是结果为什么却报错?

问题描述 c++文件流相关问题,编译通过,但是结果为什么却报错? 源码如下,这是书上的一个习题: #pragma warning(disable: 4786)#include<map>#include<set>#include<iostream>#include<fstream>#include<string>using namespace std;void initialize_exclusion_set(set<string>&a