「java复制目录」java复制目录及文件

博主:adminadmin 2023-03-22 08:12:06 501

本篇文章给大家谈谈java复制目录,以及java复制目录及文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 如何拷贝整个目录,类似xcopy

字数有限制,只给你一个方法吧,大体思路就是递归调用的方式来实现

/**

* 拷贝整个文件目录

* @param source 源目录、文件

* @param destination 目的目录、文件

*/

public static void copyFiles(File source, File destination) {

 if (!source.exists()) {

//Log.warn(source.getAbsolutePath() + " 源文件或源路径不存在");

return;

}

if (destination.isFile()) {

//Log.warn(destination.getAbsolutePath() + " 目标不应该是文件, 应该是路径");

return;

}

else

destination.mkdirs();

//如果是文件

if (source.isFile()) {

try {

String filename = destination.getAbsolutePath() + File.separator + source.getName();

FileInputStream fis = new FileInputStream(source);

File file = new File(filename);

if (file.exists()) {

file.delete();

}

FileOutputStream fos = new FileOutputStream(file);

if(!StreamHelper.toOutputStream(fis, fos)) {

return;

}

fos.close();

fis.close();

Log.debug("复制 " + source.getAbsolutePath() + " 到 " + filename);

return;

}catch (IOException ex) {

Log.error(ex);

return;

}

}

//如果是目录

else {

File[] files = source.listFiles();

for (int i = 0; i files.length; i++) {

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

String path = destination.getAbsolutePath() + File.separator + files[i].getName();

File folder = new File(path);

copyFiles(files[i], folder);

}else {

copyFiles(files[i], destination);

}

}

}

}

java实现文件的复制时,为啥在根目录下文件没有显示

java实现文件的复制时为啥在根目录下文件没有显示是因为这个文件一开始没有的话,你要调用file.createFile()这个方法去创建一个新的文件。

IO流只是写入数据的,不会去新建文件,除非你文件本来就存在。

java如何拷贝文件到另一个目录下

/**

*

复制单个文件

*

@param

oldPath

String

原文件路径

如:c:/fqf.txt

*

@param

newPath

String

复制后路径

如:f:/fqf.txt

*

@return

boolean

*/

public

void

copyFile(String

oldPath,

String

newPath)

{

try

{

int

bytesum

=

0;

int

byteread

=

0;

File

oldfile

=

new

File(oldPath);

if

(oldfile.exists())

{

//文件存在时

InputStream

inStream

=

new

FileInputStream(oldPath);

//读入原文件

FileOutputStream

fs

=

new

FileOutputStream(newPath);

byte[]

buffer

=

new

byte[1444];

int

length;

while

(

(byteread

=

inStream.read(buffer))

!=

-1)

{

bytesum

+=

byteread;

//字节数

文件大小

System.out.println(bytesum);

fs.write(buffer,

0,

byteread);

}

inStream.close();

}

}

catch

(Exception

e)

{

System.out.println("复制单个文件操作出错");

e.printStackTrace();

}

}

/**

*

复制整个文件夹内容

*

@param

oldPath

String

原文件路径

如:c:/fqf

*

@param

newPath

String

复制后路径

如:f:/fqf/ff

*

@return

boolean

*/

public

void

copyFolder(String

oldPath,

String

newPath)

{

try

{

(new

File(newPath)).mkdirs();

//如果文件夹不存在

则建立新文件夹

File

a=new

File(oldPath);

String[]

file=a.list();

File

temp=null;

for

(int

i

=

0;

i

file.length;

i++)

{

if(oldPath.endsWith(File.separator)){

temp=new

File(oldPath+file[i]);

}

else{

temp=new

File(oldPath+File.separator+file[i]);

}

if(temp.isFile()){

FileInputStream

input

=

new

FileInputStream(temp);

FileOutputStream

output

=

new

FileOutputStream(newPath

+

"/"

+

(temp.getName()).toString());

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(temp.isDirectory()){//如果是子文件夹

copyFolder(oldPath+"/"+file[i],newPath+"/"+file[i]);

}

}

}

catch

(Exception

e)

{

System.out.println("复制整个文件夹内容操作出错");

e.printStackTrace();

}

}

关于java复制目录和java复制目录及文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。