java复制文件夹以及其中的文件

java复制文件夹以及其中的文件,第1张

这是 我修改后的,能使用。 package configurationimport java.io.*

/**

* @author Administrator

*

* Class Function:

*/

public class copyDirectory {

public void startCopy(String topath,String frompath) throws IOException {

File copy=new File(topath)//拷贝到何处 路径

File bycopy=new File(frompath)//从何处拷贝 路径

//创建备份目录

copy.mkdirs()

//开始拷贝

File[] file=bycopy.listFiles()

try{

if(file.length!=0){

for(int i=0i<file.lengthi++){

if(file[i].isFile()){

FileInputStream input=new FileInputStream(file[i])

FileOutputStream output=new FileOutputStream(copy+"\\"+file[i].getName())

byte[] b=new byte[1024*10]

int len=input.read(b)

System.out.println("=========================================是文件================================================================")

System.out.println("拷贝"+topath+"\\碰唯纳仿"+file[i].getName())

System.out.println("目标"+frompath+"\\"+file[i].getName())

while((len=input.read(b))!=-1){

output.write(b,0,len)

}

output.flush()

output.close()

input.close()

}

if(file[i].isDirectory()){

copyDirectiory(copy+"\\"+file[i].getName(),bycopy+"\\"+file[i].getName())

System.out.println("=========================================是目录================================================================")

System.out.println("拷贝"笑茄培+topath+"\\"+file[i].getName())

System.out.println("目标"+frompath+"\\"+file[i].getName())

}

}

}

}catch(Exception e){

}finally{

file=null

}

}

public void copyDirectiory(String topath,String frompath) throws IOException{

File copy=new File(topath)

File bycopy=new File(frompath)

//创建拷贝目录

copy.mkdirs()

//开始拷贝

File[] file=bycopy.listFiles()

try{

if(file.length!=0){

for(int i=0i<file.lengthi++){

if(file[i].isFile()){

FileInputStream input=new FileInputStream(file[i])

FileOutputStream output=new FileOutputStream(copy+"\\"+file[i].getName())

byte[] b=new byte[1024*5]

int len

while((len=input.read(b))!=-1){

output.write(b,0,len)

}

output.flush()

output.close()

input.close()

}

if(file[i].isDirectory()){

copyDirectiory(copy+"\\"+file[i].getName(),bycopy+"\\"+file[i].getName())

}

}

}

}catch(Exception e){

}finally{

file=null

}

}}

工具/原料

一台配置了java环境的电脑

一款适合自己的开发集成环境,这里用的是eclipse Kepler

文件拷贝DEMO

1.首先,理清思路,然后我们再携戚动手 *** 作。

拷贝,有源文件,和目的文件。

如果原文件不存在,提示,报错。

如果目的文件不存在,创建空文件并被覆盖。

如果目的蠢隐扮地址,也即目的路径不存在,创建路径。

拷贝,输入流,输出流,关闭流。

拷贝前输出带灶文件大小,计算拷贝大小,比较并核实。输出。

2.首先呢,先判断传参是否完整。

如果不够两个参数,或者多于两个参数,提示错误。

如果目标文件不存在,创建 空文件继续复制。

3.在开始前,输出被拷贝的源文件的大小。

4.获得文件名称,即短名。也即路径下的文件全名(包括文件扩展名)。

5.拷贝的关键,这里用的简单的缓冲流。从源文件到目的文件。

number of bytes copied 即是对拷贝长度的累计,直到拷贝完成,输出。

6.将步骤二中的判断并拷贝文件的代码写在一个main函数中,

执行拷贝,拷贝完成。结果拷贝大小和源文件大小一致,成功。

7.在执行前,记得输入参数。

如果是使用命令提示符,执行 javac CopyFile.java 之后,

执行 java CopyFile [源文件长名] [目的文件长名]

如果是使用的eclipse,在运行前设置一下运行参数,完成后点击运行,如下图。

P.S. 这里面的所谓“长名”是指完整绝对路径+文件名+文件类型扩展名

这里的源文件及目的文件的名称分别为:

E:/IP_Data.rar 和 D:/testFiles/IP_Data.rar

END

你可以个java inputStrem流和outputStream流来实现这个功能。

import java.io.*

public class FileStreamDemo {

public static void main(String[] args) {

try {

// 来源文件

FileInputStream in = new FileInputStream("D:/b.txt")

// 目的文件

FileOutputStream out = new FileOutputStream("C:/a.txt")

byte[] bytearray = new byte[1024]

do {

in.read(bytearray, 0, 1024)

out.write(bytearray)

} while (in.available() >0)

in.close()

out.close()

} catch (ArrayIndexOutOfBoundsException e) {

e.printStackTrace()

} catch (IOException e) {

e.printStackTrace()

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8200122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存