java如何拷贝文件到另一个目录下 java怎么复制一个文件到另一个文件夹

作者&投稿:辉婵 (若有异议请与网页底部的电邮联系)

下面列举出4种方式:

1、使用FileStreams复制

这是最经典的方式将一个文件的内容复制到另一个文件中。 使用FileInputStream读取文件A的字节,使用FileOutputStream写入到文件B。正如你所看到的我们执行几个读和写操作try的数据,所以这应该是一个低效率的,下一个方法我们将看到新的方式。 这是第一个方法的代码: 

2、使用FileChannel复制

Java NIO包括transferFrom方法,根据文档应该比文件流复制的速度更快。 这是第二种方法的代码: 

3、使用Commons IO复制

Apache Commons IO提供拷贝文件方法在其FileUtils类,可用于复制一个文件到另一个地方。它非常方便使用Apache Commons FileUtils类时,您已经使用您的项目。基本上,这个类使用Java NIO FileChannel内部。 这是第三种方法的代码: 

4、使用Java7的Files类复制

如果你有一些经验在Java 7中你可能会知道,可以使用复制方法的Files类文件,从一个文件复制到另一个文件。 这是第四个方法的代码: 



/**
* 复制单个文件
* @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();

}

}

思路有两个 一个就是读取源文件的内容 输出到新文件的内容 再删除原文件
至于读取的方法 可以到网上搜 有人列出了四种方法
http://blog.csdn.net/ta8210/archive/2008/01/30/2073817.aspx

还有一种方法就是判断操作系统 然后使用系统的命令执行

java 如何把一个目录下的所有.java文件复制到另一个目录下,并保持其结构不变~

通过历遍当前文件夹下所有文件和文件夹信息,然后(处理文件夹自己去处理):
File fold = new File( "c:\est.properties ");
String strNewPath = "c:\estok\\ ";
File fnewpath = new File(strNewPath);
if(!fnewpath.exists())
fnewpath.mkdirs();
File fnew = new File(strNewPath+fold.getName());
fold.renameTo(fnew);

主要是用到java里面的i/o流。代码例子如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
* java读写文件,复制文件
* 读取d:/1.txt文件内容,写入f:/text.txt文件中.
* @author young
*
*/
public class FileWriterTest {
// 读写文件
public static void rwFile(){
FileWriter fw = null;
BufferedReader br = null;
try {
fw = new FileWriter("f:\ext.txt", true);
br = new BufferedReader(new InputStreamReader(
new FileInputStream("d:\\1.txt"), "UTF-8"));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println("文件内容: " + line);
fw.write(line);
fw.flush();
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

public static void main(String[] args) {
rwFile();
}
}
首先在D盘新建文件1.txt,输入任意内容。然后执行java代码即可。

java如何拷贝一个文件夹内的多个指定的文件到另外一个指定的文件夹下...
答:/*** 把一个文件夹里的所有文件包括文件夹 一并原样拷贝到另一个目录中;*@author shuishui*/ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputS...

...例如:将c:\program files\java 文件夹拷贝到D盘的根目录下...
答:一、复制文件代码 print?import java.io.*;import java.util.*;class Copy { static void copy(String from,String to) throws IOException { BufferedReader in=new BufferedReader(new FileReader(from));BufferedWriter out=new BufferedWriter(new FileWriter(new File(to)));String line=null;while(...

java 如何把一个目录下的所有.java文件复制到另一个目录下,并保持其结...
答:通过历遍当前文件夹下所有文件和文件夹信息,然后(处理文件夹自己去处理):File fold = new File( "c:\\test.properties ");String strNewPath = "c:\\testok\\ ";File fnewpath = new File(strNewPath);if(!fnewpath.exists())fnewpath.mkdirs();File...

怎样用Java复制文件到指定目录? 在线等,急!!!
答:import java.io.File;import java.io.IOException;import org.apache.commons.io.FileUtils;public class Admin { public static void main(String[] args) { File from = new File("d:/a");File to = new File("d:/b");try { FileUtils.copyDirectory(from, to);} catch (IOException e...

...用java代码实现复制手机中某个路径的文件到另一个指定路径中?_百度...
答:fileinputstream获取文件流,outputstream输出文件流。关键一点是,记得添加权限,举SD卡读写权限。 些目录是root权限等等。

JAVA编写程序,把C盘根目录的文本test.dat复制到D盘根目录
答:方法的2参数分别是原始文件,和拷贝的目的文件.这里不做过多介绍.实现方法很简单,分别对2个文件构建输入输出流,并且使用一个字节数组作为我们内存的缓存器, 然后使用流从f1 中读出数据到缓存里,在将缓存数据写到f2里面去.这里的缓存是2MB的字节数组 第2种方法:使用NIO中的管道到管道传输 Java代码 public...

...jar文件的复制功能,就是从一个目录的.jar文件复制到另一个目录...
答:我说下思路吧,你用java新建一个文件,然后通过流的对拷就可以实现文件的复制 其后将源文件删除就OK 了

怎样用JAVA编写把一个文件夹中的文件复制到一个指定的文件夹用完文件后...
答:File file = new java.io.File(filePath); try { if (!file.exists()) { if (!file.mkdir()) { throw new IOException("创建文件夹:" + filePath + "出错"); } } return filePath; } catch (Exception e) { throw e; } } /** * 多级目录创建 * * @param folderPath * 准备要在本级...

...例如:将c:\program files\java 文件夹拷贝到D盘的根目录下...
答:Copy("D://a.java","D://text.txt");//第一个是目标文件的目录,第二个是你想拷贝的目录 } public static void Copy(String F,String D) throws IOException, FileNotFoundException { String file = F;BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file...

Java代码拷贝文件夹 注:复制文件夹
答:Java代码复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法,代码如下:import java.io.*; /** * 复制文件夹或文件夹 */ public class CopyDirectory { // 源文件夹 static String url1 = "F:/photos"; // 目标文件夹 static String url2 =...