文件复制一般是采用两种方式进行操作:
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();
}
}

  

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

  1. [软件推荐]快速文件复制工具(Limit Copy) V4.0 绿色版

    快速文件复制工具(Limit Copy)绿色版是一款智能变频超快复制绿色软件. 快速文件复制工具(Limit Copy)功能比较完善,除了文件复制还可以智能变频,直接把要复制的文件拖入窗口即可,无需手 ...

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

    如何将文件夹/home/work下的文件复制到/home/temp里面? 使用命令: cp -R /home/work/* /home/temp *表示所有文件 但是/home/work 下的隐藏文件 ...

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

    虚拟机中操作系统.CentOs(无图形界面) 没有图形界面的linux,我也没有配置网络,现在需要把文件复制到linux系统上面,我这里就使用了u盘挂载的方式,获得了U盘中的文件. 1.VMware中 ...

  4. ProFTPD <=1.3.5 mod_copy 未授权文件复制漏洞

    poc如下: #!/usr/bin/env python# coding=utf-8 """Site: http://www.beebeeto.com/Framework ...

  5. VBA 实现批量excel文件复制

    对于每天要将文件复制到其他多个路径 1 在test文件下新建3个子文件夹 test1,test2,test3 2 在test1下新建li01.xlsx,li02.xlsx,hua01.xlsx,hua ...

  6. Java实现文件复制的四种方式

    背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制. 实现方式一:使用FileInputStream/FileOutputStream字节流进行文件的复制操 ...

  7. C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名

    1.实现把指定文件夹下的所有文件复制到指定路径下 public static void copyFiles(string path) { DirectoryInfo dir = new Directo ...

  8. [转]Windows系统中监控文件复制操作的几种方式

    1. ICopyHook 作用: 监视文件夹和打印机移动,删除, 重命名, 复制操作. 可以得到源和目标文件名. 可以控制拒绝操作. 缺点: 不能对文件进行控制. 只对Shell文件操作有效, 对原生 ...

  9. 问题解决——VS2010 将生成的文件复制到指定位置

    我是从VC6直接过渡到VS2010的,VS2008没怎么用过.用VS2010的时候,每次生成dll后,手工把dll.lib..h文件复制到指定文件夹太麻烦了,所以着手写了这个. =========== ...

随机推荐

  1. poj2891

    这道题就是扩展的中国剩余定理(模数不互质) 首先我们回忆一下中国剩余定理对于给定n个方程组x≡ai(mod pi) 令m=∏pi wi=m/pi,然后求解关于hi,ri的方程wi*hi+pi*ri=1 ...

  2. HDU 1231 最大连续子序列

    和前面两道题一样 不过这题要求输出子序列首尾的元素的值,而且如果所有元素都小于0的话,规定子序列的和为0,并输出整个序列的首尾元素. //#define LOCAL #include <iost ...

  3. 模拟实现STL中的list

    #pragma once #include<iostream>using namespace std;#include<assert.h> template<class ...

  4. CI在CentOS中的部署与实践LNMP

    1. 平台:lnmp CentOS6.4 (64bit) nginx1.2.4+php5.5.7配置过程中遇到的问题与处理方式: 1. 404错误: 原因:nginx中的配置请求路径的问题 2. 40 ...

  5. 多线程&多进程解析:Python、os、sys、Queue、multiprocessing、threading

    当涉及到操作系统的时候,免不了要使用os模块,有时还要用到sys模块. 设计到并行程序,一般开单独的进程,而不是线程,原因是python解释器的全局解释器锁GIL(global interpreter ...

  6. 有趣的js题目

    ([]).length ({}).length // undefined ([] + {}).length ({} + {}).length 具体解释见此.

  7. .vdat文件怎么打开

    http://tieba.baidu.com/p/2947300642 无需转换,把后缀修改为MP4,就可以了

  8. Java把长整型时间转成字符串日期

    数据库里存放的是timestamp格式,前端取得后是这种:1436255550710长整型时间截转换成"2015-07-07"这种格式呢? import java.io.IOExc ...

  9. MIME邮件格式

    转自:http://kptu.iteye.com/blog/890180 排版做了调整. Q.什么是MIME?什么是MIME邮件? A. MIME, 全称为"Multipurpose Int ...

  10. selenium python (三)鼠标事件

    # -*- coding: utf-8 -*-#鼠标事件 #ActionChains类中包括:                     # context_click()  右击:           ...