java拷贝文件夹
package tv.bilibili;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileOutputStream;
public class IoPlay {
public static void main(String[] args) throws IOException{
File f = new File("E:\\新建文本文档.txt");
File f1 = new File("D:\\");
IoPlay io = new IoPlay();
io.(f,f1);
}
public void (File f,File f1) throws IOException{ //复制文件的方法!
if(!f1.exists()){
f1.mkdir();
}
if(!f1.exists()){//路径判断,是路径还是单个的文件
File[] cf = f.listFiles();
for(File fn : cf){
if(fn.isFile()){
FileInputStream fis = new FileInputStream(fn);
FileOutputStream fos = new FileOutputStream(f1 + "\\" +fn.getName());
byte[] b = new byte[1024];
int i = fis.read(b);
while(i != -1){
fos.write(b, 0, i);
i = fis.read(b);
}
fis.close();
fos.close();
}else{
File fb = new File(f1 + "\\" + fn.getName());
fb.mkdir();
if(fn.listFiles() != null){//如果有子目录递归复制子目录!
(fn,fb);
}
}
}
}else{
FileInputStream fis = new FileInputStream(f);
FileOutputStream fos = new FileOutputStream(f1 + "\\" +f.getName());
byte[] b = new byte[1024];
int i = fis.read(b);
while(i != -1){
fos.write(b, 0, i);
i = fis.read(b);
}
fis.close();
fos.close();
}
}
}
以上是我自己写的,讲一个文件复制到例外一个地方,无论是文件,还是文件夹都可以
‘贰’ Java中File相似的方法
Windows的x命令。
使用java的File类,使用递归算法遍历文件夹及其所有层的子文件夹,这种写法非常繁琐且效率不高,不推荐使用,Windows的x命令可以根据所写的代码快速将需要拷贝的文件进行拷贝并且显示拷贝进度。
‘叁’ java如何复制拷贝一个文件到另一个文件夹如:a文件夹中的.data文件拷贝到b文件夹。
你可以个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 ( e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
‘肆’ java 如何拷贝整个目录,类似x
字数有限制,只给你一个方法吧,大体思路就是递归调用的方式来实现
/**
* 拷贝整个文件目录
* @param source源目录、文件
* @param destination目的目录、文件
*/
public static void Files(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);
Files(files[i], folder);
}else {
Files(files[i], destination);
}
}
}
}
‘伍’ Java代码拷贝文件夹 注:复制文件夹
Java代码复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法,代码如下:
importjava.io.*;
/**
*复制文件夹或文件夹
*/
publicclassCopyDirectory{
//源文件夹
staticStringurl1="F:/photos";
//目标文件夹
staticStringurl2="D:/tempPhotos";
publicstaticvoidmain(Stringargs[])throwsIOException{
//创建目标文件夹
(newFile(url2)).mkdirs();
//获取源文件夹当前下的文件或目录
File[]file=(newFile(url1)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//复制文件
File(file[i],newFile(url2+file[i].getName()));
}
if(file[i].isDirectory()){
//复制目录
StringsourceDir=url1+File.separator+file[i].getName();
StringtargetDir=url2+File.separator+file[i].getName();
Directiory(sourceDir,targetDir);
}
}
}
//复制文件
publicstaticvoidFile(FilesourceFile,FiletargetFile)
throwsIOException{
//新建文件输入流并对它进行缓冲
FileInputStreaminput=newFileInputStream(sourceFile);
BufferedInputStreaminBuff=newBufferedInputStream(input);
//新建文件输出流并对它进行缓冲
FileOutputStreamoutput=newFileOutputStream(targetFile);
BufferedOutputStreamoutBuff=newBufferedOutputStream(output);
//缓冲数组
byte[]b=newbyte[1024*5];
intlen;
while((len=inBuff.read(b))!=-1){
outBuff.write(b,0,len);
}
//刷新此缓冲的输出流
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
//复制文件夹
publicstaticvoidDirectiory(StringsourceDir,StringtargetDir)
throwsIOException{
//新建目标目录
(newFile(targetDir)).mkdirs();
//获取源文件夹当前下的文件或目录
File[]file=(newFile(sourceDir)).listFiles();
for(inti=0;i<file.length;i++){
if(file[i].isFile()){
//源文件
FilesourceFile=file[i];
//目标文件
FiletargetFile=newFile(newFile(targetDir).getAbsolutePath()+File.separator+file[i].getName());
File(sourceFile,targetFile);
}
if(file[i].isDirectory()){
//准备复制的源文件夹
Stringdir1=sourceDir+"/"+file[i].getName();
//准备复制的目标文件夹
Stringdir2=targetDir+"/"+file[i].getName();
Directiory(dir1,dir2);
}
}
}
}
‘陆’ java复制文件夹!
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyFile {
public boolean (String file1,String file2) {
File in=new File(file1);
File out=new File(file2);
if(!in.exists()){
System.out.println(in.getAbsolutePath()+"源文件路径错误!!!");
return false;
}
else {
System.out.println("源文件路径"+in.getAbsolutePath());
System.out.println("目标路径"+out.getAbsolutePath());
}
if(!out.exists())
out.mkdirs();
File[] file=in.listFiles();
FileInputStream fin=null;
FileOutputStream fout=null;
for(int i=0;i<file.length;i++){
if(file[i].isFile()){
try {
fin=new FileInputStream(file[i]);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("in.name="+file[i].getName());
try {
fout=new FileOutputStream(new File(file2+"/"+file[i].getName()));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(file2);
int c;
byte[] b=new byte[1024*5];
try {
while((c=fin.read(b))!=-1){
fout.write(b, 0, c);
System.out.println("复制文件中!");
}
<------------------------------注意
fin.close();
fout.flush();
fout.close();
<--------------------------------
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
<-------------------------------注释掉
// return true;
}
else (file1+"/"+file[i].getName(),file2+"/"+file[i].getName());
}
return false;
}
public static void main(String[] args) {
CopyFile File = new CopyFile();
File.("E:\\study\\opngl", "E:\\opengl");
}
}
‘柒’ java怎样用File类拷贝文件夹
使用 java.io.File listFiles得到列表, 判断是文件夹则创建、文件则拷贝
~~~~~~~~~~~~~~~
‘捌’ java如何拷贝一个文件夹内的多个指定的文件到另外一个指定的文件夹下
你好:
请看代码:
/**
*把一个文件夹里的所有文件包括文件夹一并原样拷贝到另一个目录中;
*@authorshuishui
*/
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.OutputStream;
publicclassCopyDir001{
publicstaticFiledirFrom;
publicstaticFiledirTo;
//目标路径创建文件夹
publicvoidlistFileInDir(Filefile){
File[]files=file.listFiles();
for(Filef:files){
Stringtempfrom=f.getAbsolutePath();
Stringtempto=tempfrom.replace(dirFrom.getAbsolutePath(),
dirTo.getAbsolutePath());//后面的路径替换前面的路径名
if(f.isDirectory()){
FiletempFile=newFile(tempto);
tempFile.mkdirs();
listFileInDir(f);
}else{
System.out.println("源文件:"+f.getAbsolutePath());
//
intendindex=tempto.lastIndexOf("\");//找到"/"所在的位置
StringmkdirPath=tempto.substring(0,endindex);
FiletempFile=newFile(mkdirPath);
tempFile.mkdirs();//创建立文件夹
System.out.println("目标点:"+tempto);
(tempfrom,tempto);
}
}
}
/**
*封装好的文件拷贝方法
*/
publicvoid(Stringfrom,Stringto){
try{
InputStreamin=newFileInputStream(from);
OutputStreamout=newFileOutputStream(to);
byte[]buff=newbyte[1024];
intlen=0;
while((len=in.read(buff))!=-1){
out.write(buff,0,len);
}
in.close();
out.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){
Filefromfile=newFile("e:\shui\test");//源文件夹
Filetofile=newFile("e:\Jying\shui");//目标
CopyDir001=newCopyDir001();
//设置来源去向
.dirFrom=fromfile;
.dirTo=tofile;
.listFileInDir(fromfile);
}
}
‘玖’ 怎样用Java复制文件到指定目录 在线等,急!!!!
借助工具包commons-io.jar
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.Directory(from, to);
} catch (IOException e) {
e.printStackTrace();
}
}
}