`
nbkangta
  • 浏览: 430613 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

还在用循环吗?Java复制文件内容NIO版本

    博客分类:
  • Java
 
阅读更多

网上的文件操作目前都停留在老的IO API当中,这大概就是为什么NIO(New IO)都已经不new了,在中国吃透的人还是很少的缘故吧?

 

不要用循环了,来用NIO吧,只要你的JDK在1.5以上,Follow Me!

 

我们用到的是FileChannel中的2个方法

 

transferFrom(ReadableByteChannel src, long position, long count)

transferTo( long position, long count, WritableByteChannel dest)

 

这2个方法,其实都一样,就是源和目标换一下而已

 

package com.eric.thinking.java.nio;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;

public class TansformExample {
	public static void main(String[] args) throws IOException {
		RandomAccessFile fromFile = new RandomAccessFile("data/nio-data.txt",
				"rw");
		FileChannel fromChannel = fromFile.getChannel();

		RandomAccessFile toFile = new RandomAccessFile("data/nio-to.txt", "rw");
		FileChannel toChannel = toFile.getChannel();

		long position = 0;
		long count = fromChannel.size();

		toChannel.transferFrom(fromChannel, position, count);

		fromFile.close();
		toFile.close();
	}
}

 

简单吧?

分享到:
评论

相关推荐

    NIO复制文件

    在复制文件时,我们用它来存储从源文件读取或写入目标文件的数据。 下面是一个简单的文件复制代码示例: ```java import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel...

    NIO处理大文件

    这段代码展示了如何使用NIO读取一个大文件并写入另一个文件,通过循环读取和清空缓冲区,实现了高效的文件复制。 8. 性能对比: 相较于传统的IO,NIO在处理大文件时通常具有更高的吞吐量和更低的CPU占用。尤其是...

    java复制文件及复制文件夹

    在Java编程中,复制文件和复制文件夹是常见的操作,特别是在处理数据迁移、备份或程序部署时。下面我们将深入探讨如何使用Java实现这些功能,并提供相关的代码示例。 首先,让我们看看如何复制单个文件。Java标准库...

    高效率文件复制java版

    在StartCopy方法中,我们使用了transferTo方法来实现文件复制,该方法可以将源文件的内容直接传输到目标文件中,这样可以提高文件复制的效率。在文件复制完成后,我们可以打印出文件复制的时间和速度信息。 知识点3...

    java中实现复制文件和文件夹

    在Java编程语言中,复制文件和文件夹是一个常见的任务,特别是在处理文件系统操作时。这里我们将深入探讨如何使用Java实现这个功能。 首先,让我们来看一下标题中提到的`copyFile`方法,这是一个用于复制单个文件的...

    Java文件的复制源代码

    在标题和描述中提到的"Java文件复制源代码",主要是指如何使用Java语言来实现文件的拷贝操作。这里我们将深入探讨如何通过Java标准库API来完成文件的复制,并且特别关注使用Swing组件的情况。 首先,我们从最基础的...

    java实现,简单文件监控

    在Java编程语言中,实现对本地文件的简单监控是一项实用的技术,这可以帮助开发者在文件系统中检测到诸如移动、复制和粘贴等操作。本文将深入探讨如何利用Java的文件I/O API和事件监听机制来达成这个目标。 首先,...

    linux nio和java.zip

    在“linux nio和java.zip”压缩包中的“linux nio和java.pdf”文件,很可能是详细讲解了Linux NIO和Java NIO的相关知识,包括概念、API使用、实例分析以及性能优化等方面,对于想深入了解和实践NIO编程的开发者来说...

    JAVA实现文件复制.pdf

    在Java编程语言中,文件复制是一项常见的操作,用于在不同的位置之间移动或备份数据。这里提供的代码示例展示了如何在Java中实现文件和目录的复制功能。以下是对这段代码的详细解析: 首先,我们导入所需的Java类:...

    无涯教程(LearnFk)-Java-Nio教程离线版.pdf

    整个教程内容丰富,为读者提供了一个全面的Java NIO知识框架,并通过具体的代码示例加深了对Java NIO在实际开发中应用的理解,帮助开发者更好地掌握如何在实际项目中应用Java NIO技术,提高I/O操作的性能和效率。

    Java网络编程 NIO Netty

    2. 高效的缓冲区:Netty自定义了ByteBuf,相比Java NIO的ByteBuffer,提供了更多便捷的操作方法,如合并、复制等。 3. 灵活的编解码器:Netty提供了强大的编码和解码组件,可以处理各种数据格式,如HTTP、TCP、UDP等...

    io操作复制文件

    使用NIO复制文件,可以使用Channels和Buffers: ```java import java.nio.*; import java.nio.channels.*; public class FileCopyWithNIO { public static void main(String[] args) { String sourceFilePath = ...

    java的IO流实现文件复制20190726.zip

    此外,FileChannel和NIO(New IO)框架提供了更高效且功能强大的文件复制方式,例如使用`FileChannel.transferTo()`或`FileChannel.transferFrom()`方法可以直接在两个通道之间传输数据,无需额外的缓冲区。...

    java中文件操作大全 文档.docx

    在Java中,复制文件通常通过文件流(FileInputStream 和 FileOutputStream)进行。提供的代码展示了如何实现这一功能。首先打开源文件(`src`),然后创建目标文件(`dest`),如果不存在的话。接着,通过循环读取...

    java文件和目录的增删复制

    `newFile`方法的重载版本允许我们不仅创建文件,还能将指定的字符串内容写入文件。它使用了`FileWriter`和`PrintWriter`,`FileWriter`用于写入字符数据,而`PrintWriter`则提供了方便的打印功能。文件内容通过`...

    JAVA 对文件的操作

    在给定的压缩包文件中,我们有两个`.mht`文件,"java文件复制程序.mht"和"JAVA复制文件的问题.mht"。`.mht`文件是一种单一文件网页格式,可能包含了关于Java文件复制程序的源代码示例或常见问题及其解决方案。要查看...

    基于Java的源码-二进制IO类与文件复制操作实例.zip

    4. **复制文件的步骤**: - 打开源文件的InputStream。 - 创建目标文件的OutputStream。 - 使用read()方法从InputStream读取数据,write()方法将数据写入OutputStream。 - 当read()返回-1表示文件末尾到达,关闭...

    文件的复制

    在Java中,可以利用NIO(New I/O)中的`FileChannel`类和`ByteBuffer`类来进行高效的文件复制。下面将详细介绍这种方法的具体实现。 #### 示例代码解析 以下是一个使用`FileChannel`和`ByteBuffer`进行文件复制的...

Global site tag (gtag.js) - Google Analytics