`
zhangweioak
  • 浏览: 63247 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java nio 实现的文件复制

阅读更多
package cn.com.nio;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class CopyFile {

	/**
	 * NIO实现的文件复制功能
	 * @param sourceFile 源文件路径
	 * @param targetFile 目标文件路径
	 */
	public void readerFile(String sourceFile,String targetFile) throws Exception {
		// 第一步:获取通道
		FileInputStream fin = new FileInputStream(sourceFile);  //输入
		FileOutputStream fou = new FileOutputStream(targetFile); //输出
		
		FileChannel fc = fin.getChannel();
		FileChannel fo = fou.getChannel();
		// 第二步:创建缓冲区
		ByteBuffer buffer = ByteBuffer.allocate(1024);
		while (true) {
			buffer.clear();
			int r = fc.read(buffer);
			if (r == -1) {
				break;
			}
			buffer.flip();
			fo.write(buffer);
		}
	}

	public static void main(String[] args) throws Exception {
		CopyFile test = new CopyFile();
		test.readerFile("D:/Test/TypesInByteBuffer.java","D:/Test.txt");
	}
}
分享到:
评论

相关推荐

    nio.rar_FastCopyFile.java_NIO_UseFloatBuffer.java_java nio_文件锁

    这个文件很可能是一个示例程序,演示了如何使用Java NIO进行高效的大文件复制。在传统的Java I/O中,我们通常使用InputStream和OutputStream进行文件复制,而这种方式需要不断读写,造成大量的上下文切换,效率较低...

    NIO与零拷贝_javanio_nio和零拷贝_

    - **直接内存(Direct Byte Buffer)**:Java NIO中的直接缓冲区可以分配在JVM堆外内存,减少从Java对象到本机内存的拷贝,从而实现零拷贝。 - **mmap(Memory Mapped File)**:Java的FileChannel提供了一个映射...

    NIO复制文件

    总结来说,利用Java NIO进行文件复制,通过`FileChannel`和`ByteBuffer`的配合,可以实现高效且简洁的文件复制功能。这不仅提高了程序的执行效率,也为处理大量并发I/O请求提供了可能。在`NioDemo.java`这个例子中,...

    Java NIO 中英文版

    - Java NIO提供了一组文件系统操作API,例如FileChannel用于读写文件,MappedByteBuffer实现了内存映射文件,可以直接通过内存访问文件内容,提高了读写速度。 4. **缓冲区的分类** - **ByteBuffer**:用于处理...

    java nio入门学习,两个pdf

    2. **文件操作**:NIO提供了高效、灵活的文件读写能力,特别是对于大数据处理,如日志分析、文件复制等。 3. **网络编程**:在网络通信中,NIO可以实现高效的客户端与服务器之间的数据传输,如HTTP、FTP服务器。 4...

    Large-File-Processing-master_javanio_java大文件处理_

    本项目“Large-File-Processing-master_javanio_java大文件处理_”显然专注于通过Java NIO实现大文件处理,下面我们将详细探讨相关的知识点。 1. **Java NIO基础**:NIO的核心组件包括通道(Channels)、缓冲区...

    Java.NIO资源下载资源下载

    根据提供的文件信息,我们可以提取并总结出关于Java NIO(New Input/Output)的重要知识点。 ### Java NIO 概述 Java NIO 是 Java 平台的一个重要特性,首次出现在 Java 1.4 版本中。它为 Java 开发者提供了一套...

    java nio与io性能测试

    `CopyFile.java`可能是用于对比两者的文件复制性能的代码示例。在IO中,这可能涉及到使用`FileInputStream`和`FileOutputStream`的read和write方法;而在NIO中,可能使用`FileChannel`的transferTo或transferFrom...

    javaNIO实例

    文件复制是NIO的一个经典应用。在示例中,可能会有以下步骤: 1. 打开源文件和目标文件的FileChannel。 2. 创建一个足够大的ByteBuffer,用于数据传输。 3. 使用`channel.transferTo()`或`channel.transferFrom()`...

    java nio 入门

    1. **文件操作**:使用FileChannel进行文件的读写,例如将一个文件复制到另一个文件。 2. **网络通信**:使用SocketChannel和ServerSocketChannel进行客户端和服务器端的连接与数据传输。 3. **多路复用**:通过...

    java dos界面实现的简单的文件复制、创建

    Java提供了丰富的I/O API,如`java.nio`包中的类,它们提供了更强大且更安全的文件操作功能。例如,我们可以使用`Files.copy()`方法复制文件,而无需依赖操作系统命令: ```java Path sourcePath = Paths.get(...

    ffc.zip_FileCopy_NIO_java nio

    Java NIO(New IO)是Java 1.4版本引入的一个新特性,它为Java程序...对于压缩包中的"ffc"文件,很可能是实现这个快速文件复制功能的Java代码,通过阅读和理解这个代码,我们可以更深入地学习和掌握Java NIO的精髓。

Global site tag (gtag.js) - Google Analytics