JavaIO(06)文件复制

文件复制一般是采用两种方式进行操作:

1:将源文件中的内容全部读取到内存中,并一次性的写入到目标文件中;(不常用这种方式)

2:不将源文件中的内容全部读取进来,而是采用边读边写的方式;

实例01:
package cn.itcast05;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

//一次一个字节复制
//一次一个字节数组复制

public class CopyFileDemo01 {
    public static void main(String[] args) throws IOException {
        CopyFile2();
    }
    public static void CopyFile() throws IOException
    {
        FileInputStream fis = new FileInputStream("a.txt");
        FileOutputStream fos = new FileOutputStream("a2.txt");

        int c;
        while((c=fis.read())!=-1)
        {
            fos.write(c);
        }
        fis.close();
        fos.close();
    }
    public static void CopyFile2() throws IOException
    {
        FileInputStream fis = new FileInputStream("a.txt");
        FileOutputStream fos = new FileOutputStream("a3.txt");

        int len;

        byte[] bytes = new byte[1024];

        while((len=fis.read(bytes))!=-1)
        {
            fos.write(bytes,0,len);
        }
        fis.close();
        fos.close();

    }
}

  

实例02:
package cn.itcast05;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

//一次一个字符复制
//一次一个字符数组复制

public class CopyFileDemo02 {
    public static void main(String[] args) throws IOException {
        CopyFile2();
    }
    public static void CopyFile() throws IOException
    {
        FileReader fr = new FileReader("a.txt");
        FileWriter fw = new FileWriter("a4.txt");

        int c;

        while((c=fr.read())!=-1)
        {
            fw.write(c);
        }
        fr.close();
        fw.close();
    }
    public static void CopyFile2() throws IOException
    {
        FileReader fr = new FileReader("a.txt");
        FileWriter fw = new FileWriter("a5.txt");

        int len;
        char[] chars = new char[1024];

        while((len=fr.read(chars))!=-1)
        {
            fw.write(chars, 0, len);
        }
        fr.close();
        fw.close();
    }

}

  

实例03:

package cn.itcast05;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

//完成单级文件夹的复制,即:
//a文件夹下有多个文件,没有文件夹,将a文件夹中的所有内容,复制到b文件夹中即可。
//建议方法声明:
//c
//将srcDir文件夹的内容,复制到destDir文件夹中

public class CopyFileDemo03 {
    public static void main(String[] args) throws IOException {
        File srcDir = new File("a");
        File destDir = new File("b");
        copyDir(srcDir, destDir);
}
    public static void copyDir(File srcDir,File destDir) throws IOException
    {
        if(!srcDir.exists())
        {
            System.out.println("源文件不存在");
            return;
        }
        if(!destDir.exists())
        {
            System.out.println("目的文件不存在,需要创建");
            destDir.mkdir();
        }
        File[] listFiles = srcDir.listFiles();
        for (File file : listFiles) {
            if(file.isFile())
            {
                String name = file.getName();
                copyFile(file, name, destDir);
            }

        }
    }

    public static void copyFile(File file,String name,File destDir) throws IOException
    {
        FileInputStream fis = new FileInputStream(file);
        FileOutputStream fos = new FileOutputStream(new File(destDir,name));

        int len;
        byte[] bytes = new byte[1024];
        while((len=fis.read(bytes))!=-1)
        {
            fos.write(bytes,0,len);
        }
        fis.close();
        fos.close();
    }
}

  

时间: 2024-08-08 13:57:55

JavaIO(06)文件复制的相关文章

Linux 将文件夹下的所有文件复制到另一个文件里

如何将文件夹/home/work下的文件复制到/home/temp里面? 使用命令: cp -R /home/work/* /home/temp *表示所有文件 但是/home/work 下的隐藏文件都不会被拷贝 更好的复制的方法是用"."代替"*"就好了. cp -R /home/work/.  /home/temp 将一个文件夹复制到另一个文件夹下,例如将/home下的work文件夹复制到temp下面 命令为: cp -R /home/work  /home/t

将本地文件复制到复制到Hadoop文件系统

//将本地文件复制到复制到Hadoop文件系统 //目前,其他Hadoop文件系统写入文件时均不调用progress()方法. package com; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import org.apache.hadoop.co

文件复制和备份

net use h: \\192.168.50.3\pub "123456" /user:"administrator" 或先登录共享文件夹 xcopy 源文件夹 目的文件夹 /O /X /E /H /K robocopy 源文件夹 目的文件夹 /mir /e /copyall  (大文件推荐) robocopy还提供了很多xcopy不具备的功能: 可选择多种文件类型复制到目标文件夹 可指定在复制时不复制的文件类型 可指定复制目录的级次,如只复制两级目录 可按文件的

Win7 自带FTP将文件复制到FTP服务器时发生错误。

错误截图: 错误信息: 将文件复制到FTP服务器时发生错误.请检查是否有权限将文件放到该服务器上. 详细信息: 200 Type set to I. 200 PORT commad successful. 451 No mapping for the Unicode character exits in target multi-bye code page. 解决方案: 控制面板-->管理工具-->打开Internet信息服务(IIS)管理器.右键选中自己建立好的FTP站点,选择"管

VS发布 错误 未能将文件 复制到

自己一手搭建的网站 ASP.MVC4 最近修改写功能 之后一直发布不了 一直报 错误 15 未能将文件 easyui\themes\gray\images\Thumbs.db 复制到 obj\Release\Package\PackageTmp\easyui\themes\gray\images\Thumbs.db. 未能找到文件"easyui\themes\gray\images\Thumbs.db". 0 0 MvcTender 错误 14 未能将文件 easyui\themes\

用fread和fwrite实现文件复制操作

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char **argv) { FILE *fp_src,*fp_des; char buf[128]; int num; if(argc!=3) { printf("the format must be: cp_example file_src file_des\n"); exit(EXIT_FAI

文件复制二进制版

两种复制方式: FILE *src = fopen("src.txt","r"); FILE *dest = fopen("dest.txt","w"); Char buf[1024]={0}; While(!feof(src)){ Size_t size = fread(buf,1,sizeof(buf),src); Fwrite(buf,1,size,dest); } 采用 stat函数 #include <sys/

将u盘的文件复制到虚拟机上的linux系统上面—》文件挂载(文字+图解)

虚拟机中操作系统.CentOs(无图形界面) 没有图形界面的linux,我也没有配置网络,现在需要把文件复制到linux系统上面,我这里就使用了u盘挂载的方式,获得了U盘中的文件. 1.VMware中设置USB的属性 编辑虚拟中系统信息 USB的三个信息必须全部勾选 2.开启VMware的USB服务 记得查看一下是否开启改USB服务(没注意,坑了好久才查找原因),我的电脑右键->管理->服务和应用程序 ->VMware USB Arbitration Service右键->开启服务

VS发布报错 &quot;未能将文件……复制到……&quot;

最近在一个老项目的基础上改造和升级准备做一个“产品”出来.等我利用业余时间弄得差不多就可以公布出来了.希望时间不要太长. ----------------------------------------------------------------------------------------------------------------------------------- 入主题: 删除了一些图片文件,发布的时候发现报错了,编译并不会报错. 错误大致是:未能将文件../Images/.