本文通过Java的I/O接口实现文件在电脑磁盘内的复制。仔细观察会发现,该程序复制文件的速度要远远比系统复制文件的速度慢,可能是由于系统在磁盘内复制是地址的发送过程,而该程序采用了输入、输出流完全抄写的方法。
import java.io.File;//文件类
import java.io.FileInputStream;//文件的输入流
import java.io.FileOutputStream;//文件的输出流
import java.io.FileNotFoundException;//文件未找到时的报错
public class Test {
String IPath;//源文件地址
String OPath;//目标文件地址
char c;
public static void main(String[] args) {
String IPath = "D:/Penguins.jpg";
String OPath = "D:/Penguins2.jpg";
Test test = new Test();
test.saveFile(IPath, OPath);
}
public void saveFile(String IPath, String OPath) {
this.IPath = IPath;
this.OPath = OPath;
File Ifile = new File(IPath);
File Ofile = new File(OPath);
try {
FileInputStream fis = new FileInputStream(Ifile);
FileOutputStream fos = new FileOutputStream(Ofile);
for(int i=0; i<Ifile.length(); i++) {
c = (char) fis.read();
fos.write(c);
}
//输入流和输出流在使用后一定要记得关闭,否则可能造成复制时目标文件体积不断增大的后果。
fis.close();
fos.close();
//Eclipse的辅助功能会选用其他的报错类,这里将它们统一为Exception。
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关推荐
内存映射I/O(Memory-Mapped I/O)是一种在操作系统中高效处理大文件的技术,它允许应用程序将文件的内容直接映射到进程的虚拟地址空间,从而实现文件与内存的直接交互,无需通过传统的I/O系统调用。这种方法在处理...
通道是数据传输的路径,连接到I/O设备(如文件、套接字或网络流)。通道可以是双向的,意味着数据可以从通道读取到缓冲区,也可以从缓冲区写入通道。常见的通道类型包括FileChannel、SocketChannel和...
这个更新极大地提升了Java处理I/O操作的能力,特别是在文件系统交互和网络通信方面。NIO2.0主要增加了对异步I/O的支持,允许程序在执行I/O操作时不必等待操作完成,而是可以继续执行其他任务,从而提高了程序的并发...
Java I/O 文件操作是Java编程中的重要组成部分,它允许开发者处理输入和输出,涉及文件的创建、读取、写入、删除以及复制等任务。在Java中,这些操作主要是通过java.io包提供的类来实现的。下面将详细介绍这些知识点...
使用I/O流进行文件复制是常见的应用场景,可以通过创建输入流和输出流,然后逐字节地复制,或者使用NIO的Channels和Buffers进行高效复制。 10. 数据流(Data Stream): DataInputStream和DataOutputStream支持...
缓存I/O是大多数文件系统的默认I/O操作模式。在这种模式下,操作系统会利用其内核缓冲区来缓存I/O数据,具体过程如下: - **数据读取**:当应用程序尝试读取数据时,数据首先被复制到操作系统内核的缓冲区(页缓存...
Java I/O字符流复制文档,字节流复制歌曲等 自己定义
本文档为《POINT I/O EtherNet/IP Adapter.pdf》,是一份关于POINT I/O EtherNet/IP适配器的安装和使用说明文件。从提供的内容来看,该适配器是一种用于 POINT I/O 模块的通信适配器,它为控制和与 POINT I/O 模块的...
- 在Windows中,安装驱动程序通常涉及到将驱动程序文件复制到特定的系统目录,例如`System32\drivers`,然后在设备管理器中更新驱动或者通过INF文件安装。 - **INF文件**是包含驱动程序安装信息的文本文件,告诉...
POINT I/O ControlNet Adapter是一种通讯适配器,专门为POINT I/O模块设计。它提供了一个接口,用于通过ControlNet网络对POINT I/O模块进行控制和通信。ControlNet是Rockwell Automation公司开发的一种网络协议,...
4. **I/O模式**:Linux支持多种I/O模式,如同步I/O、异步I/O、非阻塞I/O等,每种模式在处理数据传输时都有其优缺点。 5. **零拷贝(Zero-copy)技术**:为了解决传统I/O的拷贝开销,Linux引入了零拷贝技术。零拷贝...
总之,该文档为用户提供了安装、使用 POINT I/O 24V dc Expansion Power Supply的全面指导,强调了安全注意事项,并详细列出了设备的技术规格和认证信息,是工业自动化领域内重要的技术参考文件。
8. **病毒或恶意软件**:感染病毒或恶意软件也可能导致I/O错误,因为它们可能会篡改文件系统或破坏数据。运行反病毒扫描并确保设备安全是预防此类问题的关键。 9. **恢复数据**:在尝试解决I/O错误时,如果数据非常...
西门子MM4变频器是一款广泛应用于工业自动化领域的变频设备,其具备多种I/O端子,用于实现与外部设备的信号连接。在进行MM4变频器的I/O端子接线时,用户需要遵循一定的步骤和规范,以确保变频器的正确操作和设备的...
文件“CopyFile.java”可能是一个示例代码,用于演示如何使用Java NIO进行文件复制。通常,这个过程会涉及创建通道(FileChannel)和缓冲区(ByteBuffer),然后通过通道的read和write方法实现数据的传输。 总的来...
3. 使用NIO的Channels和Buffers进行高效文件复制。 七、管道流 1. PipedInputStream和PipedOutputStream用于线程间通信,一个线程写入,另一个线程读取。 八、过滤流(Filter Stream) 1. 过滤流是对已有流的扩展...
根据提供的文件内容,我们可以提炼出以下技术知识点: 1. 光洋D0系列PLC产品介绍 光洋电子无锡有限公司生产的D0系列PLC产品包括普通I/O模块和扩展模块。用户可以通过阅读技术手册了解产品的技术规格、参数和设置...
需求:将E:\电脑桌面壁纸\MisakaMikoto.jpg图片文件复制到D:\某科学的超电磁炮 目录下 public class Test { public static void main(String[] args) throws IOException { //创建字节输入流对象,关联数据源文件...
`select`模型是一种I/O多路复用技术,允许程序同时监控多个文件描述符(FD,如套接字)的状态,等待它们变为可读、可写或出现错误。这种模型的核心在于`select`系统调用,它会阻塞直到至少有一个指定的FD准备就绪。 ...
### 如何使用 `<fstream>` 类进行文件的 I/O 处理 #### 摘要 传统的文件 I/O 库如 Unix 的 `<io.h>` 和 `<stdio.h>`,由于其程序接口的原因,在很大程度上强制程序员进行某些处理,缺乏类型安全和国际化支持。C++ ...