`
miluroe
  • 浏览: 4237 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

I/O实现文件复制

 
阅读更多

        本文通过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大文件性能测试代码

    内存映射I/O(Memory-Mapped I/O)是一种在操作系统中高效处理大文件的技术,它允许应用程序将文件的内容直接映射到进程的虚拟地址空间,从而实现文件与内存的直接交互,无需通过传统的I/O系统调用。这种方法在处理...

    Java 新I/O

    通道是数据传输的路径,连接到I/O设备(如文件、套接字或网络流)。通道可以是双向的,意味着数据可以从通道读取到缓冲区,也可以从缓冲区写入通道。常见的通道类型包括FileChannel、SocketChannel和...

    利用JDK7的NIO2.0进行I/O读写和监视

    这个更新极大地提升了Java处理I/O操作的能力,特别是在文件系统交互和网络通信方面。NIO2.0主要增加了对异步I/O的支持,允许程序在执行I/O操作时不必等待操作完成,而是可以继续执行其他任务,从而提高了程序的并发...

    Java I/O文件读写/删除/复制等

    Java I/O 文件操作是Java编程中的重要组成部分,它允许开发者处理输入和输出,涉及文件的创建、读取、写入、删除以及复制等任务。在Java中,这些操作主要是通过java.io包提供的类来实现的。下面将详细介绍这些知识点...

    java基础之I/O流

    使用I/O流进行文件复制是常见的应用场景,可以通过创建输入流和输出流,然后逐字节地复制,或者使用NIO的Channels和Buffers进行高效复制。 10. 数据流(Data Stream): DataInputStream和DataOutputStream支持...

    Linux直接I/O机制介绍

    缓存I/O是大多数文件系统的默认I/O操作模式。在这种模式下,操作系统会利用其内核缓冲区来缓存I/O数据,具体过程如下: - **数据读取**:当应用程序尝试读取数据时,数据首先被复制到操作系统内核的缓冲区(页缓存...

    I/O流复制文档或者歌曲等

    Java I/O字符流复制文档,字节流复制歌曲等 自己定义

    POINT I/O EtherNet/IP Adapter.pdf

    本文档为《POINT I/O EtherNet/IP Adapter.pdf》,是一份关于POINT I/O EtherNet/IP适配器的安装和使用说明文件。从提供的内容来看,该适配器是一种用于 POINT I/O 模块的通信适配器,它为控制和与 POINT I/O 模块的...

    汇编扬声器发声程序的I/O驱动安装程序

    - 在Windows中,安装驱动程序通常涉及到将驱动程序文件复制到特定的系统目录,例如`System32\drivers`,然后在设备管理器中更新驱动或者通过INF文件安装。 - **INF文件**是包含驱动程序安装信息的文本文件,告诉...

    POINT I/O ControlNet Adapter.pdf

    POINT I/O ControlNet Adapter是一种通讯适配器,专门为POINT I/O模块设计。它提供了一个接口,用于通过ControlNet网络对POINT I/O模块进行控制和通信。ControlNet是Rockwell Automation公司开发的一种网络协议,...

    Linux I/O 原理和 Zero-copy 技术全面揭秘

    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.pdf

    总之,该文档为用户提供了安装、使用 POINT I/O 24V dc Expansion Power Supply的全面指导,强调了安全注意事项,并详细列出了设备的技术规格和认证信息,是工业自动化领域内重要的技术参考文件。

    I/O常见的有关移动硬盘的问题

    8. **病毒或恶意软件**:感染病毒或恶意软件也可能导致I/O错误,因为它们可能会篡改文件系统或破坏数据。运行反病毒扫描并确保设备安全是预防此类问题的关键。 9. **恢复数据**:在尝试解决I/O错误时,如果数据非常...

    西门子MM4变频器的I / O端子如何接线.pdf

    西门子MM4变频器是一款广泛应用于工业自动化领域的变频设备,其具备多种I/O端子,用于实现与外部设备的信号连接。在进行MM4变频器的I/O端子接线时,用户需要遵循一定的步骤和规范,以确保变频器的正确操作和设备的...

    NIO与I/O的区别

    文件“CopyFile.java”可能是一个示例代码,用于演示如何使用Java NIO进行文件复制。通常,这个过程会涉及创建通道(FileChannel)和缓冲区(ByteBuffer),然后通过通道的read和write方法实现数据的传输。 总的来...

    java i/0习题

    3. 使用NIO的Channels和Buffers进行高效文件复制。 七、管道流 1. PipedInputStream和PipedOutputStream用于线程间通信,一个线程写入,另一个线程读取。 八、过滤流(Filter Stream) 1. 过滤流是对已有流的扩展...

    光洋 D0 系列I/O 模块/存储器卡/模拟量模块技术资料.pdf

    根据提供的文件内容,我们可以提炼出以下技术知识点: 1. 光洋D0系列PLC产品介绍 光洋电子无锡有限公司生产的D0系列PLC产品包括普通I/O模块和扩展模块。用户可以通过阅读技术手册了解产品的技术规格、参数和设置...

    Java中I/O流对文件进行复制粘贴及可能会出现的问题

    需求:将E:\电脑桌面壁纸\MisakaMikoto.jpg图片文件复制到D:\某科学的超电磁炮 目录下 public class Test { public static void main(String[] args) throws IOException { //创建字节输入流对象,关联数据源文件...

    套接字I/O模型中的select模型源码

    `select`模型是一种I/O多路复用技术,允许程序同时监控多个文件描述符(FD,如套接字)的状态,等待它们变为可读、可写或出现错误。这种模型的核心在于`select`系统调用,它会阻塞直到至少有一个指定的FD准备就绪。 ...

    如何使用 类进行文件的 I/O 处理

    ### 如何使用 `&lt;fstream&gt;` 类进行文件的 I/O 处理 #### 摘要 传统的文件 I/O 库如 Unix 的 `&lt;io.h&gt;` 和 `&lt;stdio.h&gt;`,由于其程序接口的原因,在很大程度上强制程序员进行某些处理,缺乏类型安全和国际化支持。C++ ...

Global site tag (gtag.js) - Google Analytics