文件复制一般是采用两种方式进行操作:
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. RIA技术

    Rich Internet Application(富互联网应用程序,简称RIA),一种全新的Web应用程序架构,它结合了桌面软件良好的用户体验和web应用程序易部署的优点,很快获得了企业的青睐. 近 ...

  2. HDU 1851 (巴什博奕 SG定理) A Simple Game

    这是由n个巴什博奕的游戏合成的组合游戏. 对于一个有m个石子,每次至多取l个的巴什博奕,这个状态的SG函数值为m % (l + 1). 然后根据SG定理,合成游戏的SG函数就是各个子游戏SG函数值的异 ...

  3. ISO中AFN的使用步骤

    1.依赖的框架 * MobileCoreServices.framework * SystemConfiguration.framework * Security.framework 2.主头文件:A ...

  4. matlab中meshgrid函数的用法

    meshgrid用于从数组a和b产生网格.生成的网格矩阵A和B大小是相同的.它也可以是更高维的.这里的大小指的是,size()函数的大小,size()函数返回的是一个向量, 那么size(A) = s ...

  5. erl0010 - erlang查看ets 当前系统使用情况和当前配置上限

    1.限制:erlang官网给出了ets的默认上限:“The default is 1400, can be changed with the environment variable ERL_MAX_ ...

  6. (三)spark集群DHCP IP变化后的处理

    学校的网比较特殊(本人比较菜),需要DHCP获得地址,那么有时候IP被占用了,应该如何应对呢? 1)修改/etc/hosts 2) 修改spark-env.sh 里的 Master 地址 ,Maste ...

  7. photoshop,用切片工具等分图片

    一,切片 二,导出: 菜单->文件->存储为Web和设备所用格式 将预设改为PNG-24,然后点存储.

  8. GitHub入门:如何上传与下载工程?

    由于经常要在家写代码,所以需要有个能够方便访问代码管理工具.最近尝试了一下GitHub.经过了一翻纠结之后,基本上掌握了他的使用方式.  要使用GitHub需要首先在其网站上进行注册.其官方网站是ht ...

  9. 使用Firebug和FirePHP调试PHP

    大家都知道Firebug,可能不知大FirePHP,它也是FireFox插件用来调试PHP的,首先确保你安装了Firebug,然后再去安装FirePHP,这是你会看到Firebug多了一只蓝色的虫: ...

  10. Visual Studio 2005 移植 - WINVER,warning C4996, error LINK1104

    Visual Studio 2005 移植 - WINVER,warning C4996, error LINK1104 一.WINVER  Compile result:  WINVER not d ...