java如何拷贝一个文件夹内的多个指定的文件到另外一个指定的文件夹下?
下面是我学习过程中总结的几个复制文件的方法,代码如下:
/** * 复制媒体文件,该例子是复制1.mp3文件,列出了四种方式. */import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class BufferedStreamCopyFiles {public static void main(String[] args) throws IOException {/** * 共有四个方法,但建议用demo1,demo2;因为demo3需要创建数组, 如果文件大,光创建数组就需要很多时间;demo4一定也不要用, * 效率非常慢. */demo1();demo2();demo3();demo4();}public static void demo1() throws FileNotFoundException, IOException {FileInputStream fis = new FileInputStream("d:\\1.mp3");FileOutputStream fos = new FileOutputStream("d:\\01.mp3");int len = 0;byte[] buf = new byte[1024];while ((len = fis.read(buf)) != -1) {fos.write(buf, 0, len);}fis.close();fos.close();}public static void demo2() throws IOException {FileInputStream fis = new FileInputStream("d:\\1.mp3");BufferedInputStream bufis = new BufferedInputStream(fis);FileOutputStream fos = new FileOutputStream("d:\\02.mp3");BufferedOutputStream bufos = new BufferedOutputStream(fos);int len = 0;while ((len = bufis.read()) != -1) {bufos.write(len);}bufis.close();bufos.close();}// 不建议这种方式public static void demo3() throws IOException {FileInputStream fis = new FileInputStream("d:\\1.mp3");FileOutputStream fos = new FileOutputStream("d:\\03.mp3");byte[] buf = new byte[fis.available()];fis.read(buf);fos.write(buf);fos.close();fis.close();}public static void demo4() throws IOException {FileInputStream fis = new FileInputStream("d:\\1.mp3");FileOutputStream fos = new FileOutputStream("d:\\04.mp3");int ch = 0;while ((ch = fis.read()) != -1) {fos.write(ch);}fos.close();fis.close();}}
操作方法:
linux下进行复制的命令为cp。假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了。
如果dir2目录不存在,则可以直接使用 cp -r dir1 dir2即可。
如果dir2目录已存在,则需要使用:cp -r dir1/. dir2。
如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。ps:dir1、dir2改成对应的目录路径即可。
cp -r /home/www/xxx/statics/. /home/www/statics如果存在文件需要先删除,rm -rf /home/www/statics/*否则会一个个文件提示你确认,使用cp -rf 也一样提示。
你好:
请看代码:
/**
* 把一个文件夹里的所有文件包括文件夹 一并原样拷贝到另一个目录中;
*@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.InputStream;
import java.io.OutputStream;
public class CopyDir001 {
public static File dirFrom;
public static File dirTo;
// 目标路径创建文件夹
public void listFileInDir(File file) {
File[] files = file.listFiles();
for (File f : files) {
String tempfrom = f.getAbsolutePath();
String tempto = tempfrom.replace(dirFrom.getAbsolutePath(),
dirTo.getAbsolutePath()); // 后面的路径 替换前面的路径名
if (f.isDirectory()) {
File tempFile = new File(tempto);
tempFile.mkdirs();
listFileInDir(f);
} else {
System.out.println("源文件:" + f.getAbsolutePath());
//
int endindex = tempto.lastIndexOf("\\");// 找到"/"所在的位置
String mkdirPath = tempto.substring(0, endindex);
File tempFile = new File(mkdirPath);
tempFile.mkdirs();// 创建立文件夹
System.out.println("目标点:" + tempto);
copy(tempfrom, tempto);
}
}
}
/**
* 封装好的文件拷贝方法
*/
public void copy(String from, String to) {
try {
InputStream in = new FileInputStream(from);
OutputStream out = new FileOutputStream(to);
byte[] buff = new byte[1024];
int len = 0;
while ((len = in.read(buff)) != -1) {
out.write(buff, 0, len);
}
in.close();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
File fromfile = new File("e:\\shui\est");// 源文件夹
File tofile = new File("e:\\Jying\\shui");// 目标
CopyDir001 copy = new CopyDir001();
// 设置来源去向
copy.dirFrom = fromfile;
copy.dirTo = tofile;
copy.listFileInDir(fromfile);
}
}
/**
* 复制整个文件夹内容
* @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 编写程序,拷贝一个带内容的文件夹。 例如:将c:\program files\java...
答:一、复制文件代码 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 ou...
java如何拷贝一个文件夹内的多个指定的文件到另外一个指定的文件夹下...
答:/*** 把一个文件夹里的所有文件包括文件夹 一并原样拷贝到另一个目录中;*@author shuishui*/ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.i...
Java代码拷贝文件夹 注:复制文件夹
答:import java.io.*; /** * 复制文件夹或文件夹 */ public class CopyDirectory { // 源文件夹 static String url1 = "F:/photos"; // 目标文件夹 static String url2 = "D:/tempPhotos"; ...
java 复制一个指定文件夹下的指定文件 到另一个指定文件夹下
答:import java.io.IOException;public class BufferedStreamCopyFiles {public static void main(String[] args) throws IOException {/** * 共有四个方法,但建议用demo1,demo2;因为demo3需要创建数组, 如果文件大,光创建数组...
JAVA怎么将一个图片复制到文件夹中去?
答:JDK宝典里有这样的一段代码,你调用copyFile方法就可以了:/ 复制单个文件, 如果目标文件存在,则不覆盖。param srcFileName 待复制的文件名 param destFileName 目标文件名 return 如果复制成功,则返回true,否则返回false...
java中怎样按字节读取文件并复制到另一个文件夹
答:这里以字节流FileInputStream,FileOutputStream为例。代码例子如下:import java.io.File;/** * 把一个文件夹中的文件复制到一个指定的文件夹 * @author young * */import java.io.FileInputStream;import java.io.File...
用Java编写一个程序,将一个图像文件复制到指定的文件夹中
答:这是我们公司基类里的一个方法希望对你有帮助。。/ 复制单个文件 param oldPath String 原文件路径 如:c:/fqf.txt param newPath String 复制后路径 如:f:/fqf.txt return boolean / public void copyFile(String ...
怎样用Java复制文件到指定目录? 在线等,急!!!
答: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) { e....
怎样用JAVA编写把一个文件夹中的文件复制到一个指定的文件夹用完文件后...
答:import java.io.PrintWriter;import java.net.URL;import java.util.StringTokenizer;public class FileUtil { /** * 读取文本文件内容 * * @param filePathAndName * 带有完整绝对路径的文件名 * @param encoding * 文本文件打开...
java 编写程序,拷贝一个带内容的文件夹。 例如:将c:\program files\java...
答:public class CopyFile { public static void main(String[] args) throws FileNotFoundException, IOException { Copy("D://a.java","D://text.txt");//第一个是目标文件的目录,第二个是你想拷贝的目录 } public...