/**
* @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()
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)