public class IOTest {
public static void main(String[] args) {
IOTest io = new IOTest();
try {
long startTime = System.currentTimeMillis();
io.readWrite("d:/file/aa.txt", "d:/file/bb.txt");
long endTime = System.currentTimeMillis();
System.out.println("Time taken for reading and writing using default behaviour : "
+ (endTime - startTime) + " milli seconds");
long startTime1 = System.currentTimeMillis();
io.readWriteBuffer("d:/file/aa.txt", "d:/file/bb.txt");
long endTime1 = System.currentTimeMillis();
System.out.println("Time taken for reading and writing using buffered streams : "
+ (endTime1 - startTime1) + " milli seconds");
long startTime2 = System.currentTimeMillis();
io.readWriteArray("d:/file/aa.txt", "d:/file/bb.txt");
long endTime2 = System.currentTimeMillis();
System.out.println("Time taken for reading and writing using custom buffering : "
+ (endTime2 - startTime2) + " milli seconds");
long startTime3 = System.currentTimeMillis();
io.readWriteCustom("d:/file/aa.txt", "d:/file/bb.txt");
long endTime3 = System.currentTimeMillis();
System.out.println("Time taken for reading and writing using custom buffering : "
+ (endTime3 - startTime3) + " milli seconds");
} catch (IOException e) {
e.printStackTrace();
}
}
public static void readWrite(String fileFrom, String fileTo)
throws IOException {
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(fileFrom);
out = new FileOutputStream(fileTo);
while (true) {
int bytedata = in.read();
if (bytedata == -1)
break;
out.write(bytedata);
}
}
finally {
if (in != null)
in.close();
if (out != null)
out.close();
}
}
public static void readWriteBuffer(String fileFrom, String fileTo)
throws IOException {
InputStream inBuffer = null;
OutputStream outBuffer = null;
try {
InputStream in = new FileInputStream(fileFrom);
inBuffer = new BufferedInputStream(in);
OutputStream out = new FileOutputStream(fileTo);
outBuffer = new BufferedOutputStream(out);
while (true) {
int bytedata = inBuffer.read();
if (bytedata == -1)
break;
out.write(bytedata);
}
}
finally {
if (inBuffer != null)
inBuffer.close();
if (outBuffer != null)
outBuffer.close();
}
}
public static void readWriteArray(String fileFrom, String fileTo)
throws IOException {
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(fileFrom);
out = new FileOutputStream(fileTo);
int availableLength = in.available();
byte[] totalBytes = new byte[availableLength];
int bytedata = in.read(totalBytes);
out.write(totalBytes);
}
finally {
if (in != null)
in.close();
if (out != null)
out.close();
}
}
public static void readWriteCustom(String from, String to)
throws IOException {
InputStream in = new FileInputStream(from);
OutputStream out = new FileOutputStream(to);
try {
byte[] bytes = new byte[128 * 1024];
int len;
while ((len = in.read(bytes)) > 0) {
out.write(bytes, 0, len);
}
} finally {
if (in != null)
in.close();
if (out != null)
out.close();
}
}
}
经测试最后一种方式,速度最快!不知道是否有比他更快的方式!?
分享到:
相关推荐
在IT领域,IO流(Input/Output Stream)和XML解析是两个重要的概念,它们在数据处理和信息交换中起着核心作用。 IO流是Java编程语言中的一个关键特性,用于处理程序与外部设备(如硬盘、网络、内存等)之间的数据...
Java中的IO流是Java核心库的重要组成部分,它用于在不同数据源之间传输数据。Java IO流分为两大类:字符流(Character Stream)和字节流(Byte Stream)。字符流处理单个字符,而字节流处理8位的字节序列。它们又...
### JAVA IO流概念及其应用详解 #### 一、JAVA为何引入流的概念? 在JAVA中,引入流的概念主要是为了实现对各种类型数据的高效处理。在实际应用中,无论是从网络中传输数据还是从本地文件中读取数据,亦或是与用户...
Java的IO流是Java编程语言中的重要组成部分,它主要用于数据的输入和输出操作。在Java中,IO流被设计为处理任何类型的数据,包括字符、字节甚至对象。本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO...
本篇文章将深入梳理Java中的I/O流体系,并对不同类型的流进行效率分析,帮助开发者更好地理解和运用。 Java的I/O流分为四大类:字节流(Byte Stream)、字符流(Character Stream)、对象流(Object Stream)和套接...
Java中的IO流主要负责在不同数据源之间进行数据的传输,包括从文件系统、网络、内存等地方读取数据,以及向这些地方写入数据。IO流被设计为双工通道,既可以进行输入操作,也可以进行输出操作。Java的IO流体系结构...
Java中的IO流是Java语言处理输入输出操作的重要组成部分,它为数据传输提供了强大的支持。本文将深入探讨Java的IO流实例应用,旨在帮助开发者更好地理解和掌握这一关键概念。 IO流在Java中分为两大类:字符流...
Java IO流技术是Java平台中用于处理输入输出的重要机制,其核心在于数据的传输,从数据源到程序或从程序到目的地。在Java中,流分为两大类:输入流(InputStream、Reader)和输出流(OutputStream、Writer)。输入流...
Java IO流是Java编程语言中用于处理输入输出操作的一个重要概念。它允许程序读取数据源或向数据目的地写入数据。Java中的IO流主要分为输入流和输出流两大类,每类又可以根据数据处理方式的不同细分为多种具体实现。...
除了基本的读写操作,Java IO流还支持缓冲流,如BufferedInputStream和BufferedReader,它们可以提高读写效率,减少对底层资源的频繁调用。此外,还有过滤流,如DataInputStream和PrintStream,它们提供了额外的功能...
Java IO流是Java平台中的重要组成部分,用于处理输入和输出操作。它允许程序与外部设备如硬盘、网络、内存等进行数据传输。IO流的概念基于流(Stream)模型,数据以字节或字符序列的形式流动。Java IO库提供了丰富的...
在Java编程语言中,`IO流`(Input/Output流)是处理数据输入与输出的核心概念。`IO流`允许程序读取或写入数据到各种类型的源和目标,如键盘、显示器、文件、网络连接等。本部分的io流详解内容主要涵盖以下几个方面:...
### Java IO流详解 #### 一、Input和Output Stream概览 在Java中,输入输出流(简称IO流)是用来处理文件读写的核心技术之一。它主要包括两类:以字节为导向的流和以字符为导向的流。 ##### 1.1 以字节为导向的流...
在Java编程语言中,IO流(Input/Output流)是用来处理数据输入与输出的重要工具。在文本文件的复制过程中,通常会用到三种主要的流类型:字节流(Byte Stream)、字符流(Character Stream)以及缓冲流(Buffered ...
本示例是关于如何使用Java中的IO流进行实际操作的演示,主要包括字节流和字符流的使用。字节流处理的是原始的八位字节数据,而字符流则处理Unicode字符集中的字符。下面我们将深入探讨这两个主要流类型及其应用场景...
### Java IO流学习笔记 #### 一、IO流的四大抽象类 - **InputStream/OutputStream**:字节的输入输出流的抽象类。 - 数据单位:字节(8比特,范围0-255) - **Reader/Writer**:字符的输入输出流的抽象类。 - ...
Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...
Java IO流教程宝典 Java中的IO流是用于在程序与外部资源(如磁盘、网络、内存等)之间传输数据的重要工具。流的概念源于计算机科学中的数据流思想,它代表了数据的有序传输。在Java中,IO流提供了一种标准化的方式...
理解并熟练运用Java的IO流体系,不仅可以提高代码的可读性和效率,也是成为一名专业Java开发者必备的技能之一。在实际项目中,我们经常会遇到需要对文件进行读写、在网络间传输数据或处理用户输入的情况,这时候,...
Java IO流是Java编程语言中处理输入和输出的重要机制,它允许程序与各种类型的输入源(如键盘、文件、网络连接)以及输出目标(如显示器、文件、网络)进行交互。在Java中,I/O流被设计为面向对象,使得处理数据变得...