文件复制一般是采用两种方式进行操作:
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. 【转】PWM占空比和分辨率

    占空比是接通时间与周期之比冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同占空比:就是输出的PWM中,高电平保持的时间与该PWM的时钟周期的时间之比,如一个PWM的频率是1000Hz, ...

  2. linq to sql ,将var 类型转为 IList 类型

    public void SOHSelecting(int startRowIndex, int maximumRows, string sortExpression, string location) ...

  3. 决定undo表空间的大小

    1.查询每秒最高需要的undo的数据块[每个块8k大小] sys)) from v$undostat; )) --------------------------------------------- ...

  4. 什么是 db time

    AWR中有 DB time这个术语,那么什么是DB time呢? Oracle10gR2 官方文档 给出了详细解释(Oracle10gPerformance Tuning Guide 5.1.1.2 ...

  5. TextView及其子类

    1.TextView控件(TextView是EditView.Button等类的父类) <1>android:id   给当前控件定义了一个唯一标识符 <2>android:l ...

  6. android中的所谓观察者模式

    生活中我们常认定某些人很有才,但什么是有才呢?明朝的王守仁曾这样解释:才,是所谓天理,应用到物上,便成了才.凡事凡物,只要掌握了所谓科学的方法,并能灵活运用,那么你也可以成为一个有才的人. 观察者模式 ...

  7. PHP的cURL库:抓取网页,POST数据及其他,HTTP认证 抓取数据

    From : http://developer.51cto.com/art/200904/121739.htm 下面是一个小例程: ﹤?php// 初始化一个 cURL 对象$curl = curl_ ...

  8. memcache保存php的session 解决多服务器的session问题

    PECL :: Package :: memcache 2.1.1 版本的 Changelog 中有一条: - Added experimental session storage support. ...

  9. 嵌入式 使用udev高效、动态地管理Linux 设备文件

    本文以通俗的方法阐述 udev 及相关术语的概念.udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例.本文会使那 ...

  10. ASP.NET Web API 帮助(help)页面上没有 Test API按钮的解决方法

    参与一个web API项目时发现它的help页面特别好用,不仅可以根据webapi的方法和注释自动生成帮助文档以方便查阅,还可以在这个页面上测试webapi方法.于是在自己新建项目时也打算将这个hel ...