`
JavaSam
  • 浏览: 952140 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA FileChannel 实现文件的COPY

    博客分类:
  • JAVA
 
阅读更多

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

public class ChannelCopy {

	private static final int BSIZE =1024;
	public static void main(String[] args) {
		try {
			FileChannel in = new FileInputStream("ChannelCopy.java").getChannel(),out = new FileOutputStream("D:\\temp.txt").getChannel();
			ByteBuffer buffer = ByteBuffer.allocate(BSIZE);
			while((in.read(buffer))!=-1){
				buffer.flip();//做好被写的准备
				out.write(buffer);
				buffer.clear();//做好被读的准备
			}
		} catch (FileNotFoundException e) {
			System.out.println("找不到文件");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
/**简单写法**/
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;

public class CopyOfChannel2 {
	public static void main(String[] args) {
		try {
			FileChannel in = new FileInputStream("ChannelCopy.java").getChannel(), out = new FileOutputStream("D:\\temp.txt").getChannel();
			in.transferTo(0, in.size(), out);//简便写法
			out.transferFrom(in, 0, in.size());//效果同上
		} catch (FileNotFoundException e) {
			System.out.println("找不到文件");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
 
0
1
分享到:
评论

相关推荐

    java实现文件批处理

    在Java中,可以使用`java.io`包中的`FileInputStream`和`FileOutputStream`类来实现文件的复制。首先创建一个输入流读取源文件,然后创建一个输出流写入目标文件。通过循环读取源文件的数据并写入目标文件,可以完成...

    java 文件操作(对文件的输入输出)

    9. **文件复制**: 在Java中,可以使用`FileInputStream`和`FileOutputStream`进行简单的文件复制,或者使用`Files.copy()`方法进行更高效的复制。 10. **异常处理**: 在进行文件操作时,必须考虑到可能出现的异常,...

    java swing拷贝文件进度条

    在Java Swing中实现文件拷贝并同时显示进度条是一项常见的任务,特别是在处理大文件时,让用户了解拷贝进度是提高用户体验的重要方式。下面我们将深入探讨如何使用Java Swing来创建这样一个功能。 首先,我们需要...

    j-zerocopy

    总结起来,"j-zerocopy"项目主要探讨了如何在Java环境中利用NIO和内存映射文件等技术实现零拷贝,以提高Socket通信的效率。通过对比传统Socket编程与零拷贝Socket编程,我们可以更好地理解这项技术的优势,并在实际...

    java与zero-copy

    这在Linux和UNIX系统中可以通过Java NIO(New Input/Output)中的FileChannel类的transferTo()方法实现。transferTo()方法允许将数据直接从调用它的通道转移到另一个可写的字节通道中,无需经过应用程序的数据流。 ...

    java 模拟windows文件操作

    - Java 7引入了`java.nio.file`包,其中`Files`类提供了异步的文件操作方法,如`Files.copy()`, `Files.move()`等。 10. **文件监控** - Java 7开始支持文件系统事件监控,通过`java.nio.file.FileSystemWatcher`...

    java高速文件缓存

    在Java中实现高效的文件缓存策略,可以利用Java集合框架、内存管理机制以及第三方库来达到目的。 一、Java内存模型与缓存策略 Java内存模型分为堆内存(Heap)和栈内存(Stack),其中堆内存用于存储对象实例,包括...

    在Java里处理文件的技巧Java开发Java经验技巧共5

    基本的`FileInputStream`和`FileOutputStream`组合可以实现简单的复制,而`Files.copy()`方法是更现代、更安全的选择,它支持复制大文件并处理异常。 7. **文件过滤和遍历**:`File.listFiles()`方法可以获取指定...

    java复制文件的4种方式

    尽管Java标准库并未直接提供一个简单的方法来复制文件,但开发者可以通过多种途径实现这一功能。本文将详细介绍四种常见的Java文件复制方法:使用`FileStreams`、使用`FileChannel`、使用Apache `Commons IO`以及...

    java文件操作总结

    在Java中,文件操作主要通过java.io包中的类和接口实现。下面将对Java文件操作进行详细的总结,并提供相关的示例。 1. **File类**:Java中的`File`类是所有文件和目录操作的基础。它提供了创建、删除、重命名文件和...

    java的文件

    Channels(通道)和Buffers(缓冲区)是其核心概念,可以实现异步文件操作。例如,FileChannel类提供了transferTo()和transferFrom()方法,用于高效地移动文件数据。 5. **FileReader和FileWriter**:这两个类分别...

    java写的一个实用的高速复制大文件的工具类

    首先,让我们理解为什么Java中的标准`java.io.File`类的`copyFile()`方法或`java.nio`包下的`Files.copy()`方法在处理大文件时可能不够高效。这两个方法虽然简单易用,但在大文件操作中可能会导致内存溢出,因为它们...

    Java二进制IO类与文件复制操作实例

    在NIO中,我们可以使用FileChannel进行文件复制,它支持直接缓冲区和映射文件内存,从而提高性能。 6. **异常处理** - 在处理IO操作时,必须注意异常处理。在上述代码中,我们使用了try-catch语句来捕获并处理可能...

    JAVA文件操作大全

    如Files.copy() 方法可轻松实现文件复制,Files.walk() 可以遍历整个目录结构。 10. **异常处理** 文件操作可能会抛出IOException,因此在进行文件操作时,必须捕获或声明该异常。良好的异常处理可以确保程序在...

    JAVA 的IO流的文件复制

    本篇文章将详细讲解如何使用Java的IO流进行文件复制,以及如何实现整个文件夹的复制,并检查复制是否成功。 1. 单个文件复制: 在Java中,我们可以使用`java.io`包中的`FileInputStream`和`FileOutputStream`类来...

    Using NIO to copy Java file fast.zip_java nio

    在"Using NIO to copy Java file fast"的例子中,开发者可能使用了以下步骤来快速复制文件: 1. 打开源文件和目标文件的FileChannel。 2. 创建一个ByteBuffer作为数据传输的中介。 3. 使用FileChannel的read()方法...

    java 文件操作类

    `java.nio.channels.FileChannel`类提供了一种高效的方式进行大块数据的传输,支持映射文件到内存(Memory-Mapped Files)。 总的来说,Java通过丰富的类库为文件操作提供了强大的支持,无论是简单的文本文件读写...

    复制文件(java)

    在提供的`Copy.jar`文件中,可能包含了上述两种或其中一种文件复制的实现。阅读源码可以帮助理解具体实现细节和优化策略,例如错误处理、并发复制等。`readme.txt`文件可能包含了项目说明、使用指南或开发者注释,对...

    自己做的文件复制粘贴jar包

    【标题解析】 "自己做的文件复制粘贴jar包" 这个标题表明这是一个由个人开发者编写的Java可执行...通过提供的"CopyAndPaste.jar"和"CopyAndPaste使用方法.txt"文件,可以更深入地了解这个程序的实现细节和使用流程。

    第12讲 Java有几种文件拷贝方式?哪一种最高效?1

    在Java编程中,文件拷贝是一项常见的操作,有多种实现方式。本节主要讨论了三种典型的方法,并探讨了它们的效率和底层实现机制。 首先,Java.IO类库提供了一种基于`FileInputStream`和`FileOutputStream`的文件拷贝...

Global site tag (gtag.js) - Google Analytics