导航:首页 > 文件处理 > java复制文件夹

java复制文件夹

发布时间:2022-02-14 13:38:19

‘壹’ java 如何拷贝整个目录,类似x

有两种方法可以使用:

1、我们可以使用java的File类,使用递归算法遍历文件夹及其所有层的子文件夹,这种写法非常繁琐且效率不高,不推荐使用。

2、直接使用Windows的x命令
示例代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main( String[] args ) throws IOException
{
/*在dos窗口:x C:\源文件 D:\源文件\/S/E*/
/*字符所需的格式:x C:\\源文件 D:\\源文件\\/S/E*/
System.out.println( "请输入源文件的地址栏路径:" );
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
String input = br.readLine();
/*将地址中的单斜杠变为双斜杠*/
String from = input.replaceAll( "\\\\", "\\\\\\\\" );
/*获取文件名*/
String name_file = from.substring( from.lastIndexOf( "\\" ) + 1, from.length() );
/*把目标拷贝到D盘根目录*/
String to = "D:\\" + name_file + "\\/S/E";
/*拼装命令*/
String cmd = "cmd.exe /C x " + from + " " + to;
/*执行命令*/
java.lang.Runtime.getRuntime().exec( cmd );
System.out.println( "文件拷贝完毕。" );
System.out.println( "文件已经拷贝到:D:\\" + name_file );
}
}

‘贰’ Java File的操作,复制文件夹的方法!

你写的两个程序都不太严谨,我给你写一个复制文件和复制文件夹的标准例子吧。
//复制文件
package com.cdd.file;
import java.io.*;
public class FileText {
public static void main(String[] args) {
String sfpath = "E://word.txt"; // 指定文件地址
String dfpath = "F://word.txt";
File sFile = new File(sfpath); // 创建文件对象
File dFile = new File(dfpath);
try {
dFile.createNewFile(); // 新建文件
FileInputStream fis = new FileInputStream(sFile);
FileOutputStream fout = new FileOutputStream(dFile);
byte[] date = new byte[512]; // 创建字节数组
int rs = -1;
while ((rs = fis.read(date)) > 0) { // 循环读取文件
fout.write(date, 0, rs); // 向文件写数据
}
fout.close();
fis.close(); // 关闭流
System.out.println("文件复制成功");
} catch (Exception e) {
e.printStackTrace();
}
}
}

//复制文件夹
package com.cdd.util;
import java.io.*;
public class FileUtil {
private static void (File[] files, File d) {
if (!d.exists()) //如果指定目录不存在
d.mkdir(); //创建目录
for (int i = 0; i < files.length; i++) { //循环遍历要复制的文件夹
if (files[i].isFile()) { //如果文件夹中是文件
try {
FileInputStream fis = new FileInputStream(files[i]); //创建FileInputStream对象
FileOutputStream out = new FileOutputStream(new File(d
.getPath()
+ File.separator + files[i].getName())); //复制后文件的保存路径
int count = fis.available();
byte[] data = new byte[count];
if ((fis.read(data)) != -1) { //读取文件
out.write(data); //将读取的信息写入文件中
}
out.close(); //关闭流
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (files[i].isDirectory()) { //如果文件夹中是一个路径
File des = new File(d.getPath() + File.separator
+ files[i].getName()); //在复制后路径中创建子文件夹
des.mkdir();
(files[i].listFiles(), des); //再次调用本方法
}
}
System.out.println("文件夹复制成功");
}
public static void main(String[] args) {
File sourFile = null, desFile = null;
String sourFolder = "E://word"; //指定要进行复制的文件夹
String desFolder = "E://"; //指定复制后的文件夹地址
sourFile = new File(sourFolder);
if (!sourFile.isDirectory() || !sourFile.exists()) { //如果原文件夹不存在
System.out.println("原文件夹不存在");
}
desFile = new File(desFolder);
desFile.mkdir();
(sourFile.listFiles(), desFile); //调用文件夹复制方法
}
}

‘叁’ 怎样用Java复制一个文件到指定目录

import java.io.*;

public class CopyFile {
public static void main(String[] args) {
try{
FileInputStream input=new FileInputStream("f:\\downloads\\kon.jpg");//可替换为任何路径何和文件名
FileOutputStream output=new FileOutputStream("f:\\kon.jpg");//可替换为任何路径何和文件名

int in=input.read();
while(in!=-1){
output.write(in);
in=input.read();
}
}catch (IOException e){
System.out.println(e.toString());
}
}
}

‘肆’ java 文件夹 。下面所有的文件及其文件夹 。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class FolderCopy {
/**
* @param args
*/
/*文件
* param src,des
* return ture 成功。false 失败
*/
public static boolean fileCopy(String src,String des){
File srcFile=new File(src);
File desFile=new File(des);
byte[]b=new byte[1024];
String string="";
try {
FileInputStream fis=new FileInputStream(srcFile);
FileOutputStream fos=new FileOutputStream(desFile,false);
while(true){
int i=fis.read(b);
if(i==-1)break;
fos.write(b,0,i);
}
fos.close();
fis.close();
return true;
} catch (Exception e){
e.printStackTrace();
}
return false;
}

/*
* 文件夹
* param src,des
* return ture 成功。false 失败
*
*/

public static boolean folderCopy(String src,String des){
File srcFile=new File(src);
File desFile=new File(des);
File []files=srcFile.listFiles();
boolean flag = false;
if(!desFile.exists())desFile.mkdir();
for(int i=0;i<files.length;i++){
String path=files[i].getAbsolutePath();
if(files[i].isDirectory()){
File newFile=new File("path.replace(src,des)");
if(!newFile.exists())newFile.mkdir();//不存在新建文件夹
folderCopy(path,path.replace(src,des));
}
else
flag=fileCopy(path,path.replace(src,des));//文件复制函数
}
return flag;
}
public static void main(String[] args) {
FolderCopy.folderCopy("d:\\1","C:\\1" );

}

}
希望能够帮助你。

‘伍’ 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中如何实现快速复制文件

public class IOTest2 {

/**
* @author jiang
* @param args
* BufferedReader
* BufferedWriter
* @throws IOException
*/
public static void main(String[] args) throws IOException {
//一次能读取一行 readLine()方法
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("1.txt")));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("2.txt")));
String str=null;
while((str=br.readLine())!=null){
//文件末尾读取为null就结束
bw.write(str);
}
bw.flush();//写入后刷新
bw.close();//关闭文件
br.close();//关闭文件
}
}

‘柒’ Java怎么实现文件拷贝

工具/原料

一台配置了java环境的电脑

一款适合自己的开发集成环境,这里用的是eclipse Kepler


文件拷贝DEMO

1.首先,理清思路,然后我们再动手操作。

拷贝,有源文件,和目的文件。

如果原文件不存在,提示,报错。

如果目的文件不存在,创建空文件并被覆盖。

如果目的地址,也即目的路径不存在,创建路径。

拷贝,输入流,输出流,关闭流。

拷贝前输出文件大小,计算拷贝大小,比较并核实。输出。

‘捌’ 用java复制多级文件夹下的文件,只要文件不要文件夹。

递归

File file = new File("d:/A/");
private List<String> ergodic(File file,List<String> resultFileName){
File[] files = file.listFiles();
if(files==null)return resultFileName;// 判断目录下是不是空的
for (File f : files) {
if(f.isDirectory()){// 判断是否文件夹

ergodic(f,resultFileName);// 调用自身,查找子目录
}else
resultFileName.add(f.getPath());
}
return resultFileName;
}

要获取文件 的话 , 路径 全在这个list中
你要是直接复制到 别的目录 改一改就可以了
把是文件的地方 用流写出去可以了

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

下面列举出4种方式:

1、使用FileStreams复制

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

‘拾’ JAVA怎么将一个图片复制到文件夹中去

JDK宝典里有这样的一段代码,你调用File方法就可以了:

/**
* 复制单个文件, 如果目标文件存在,则不覆盖。
* @param srcFileName 待复制的文件名
* @param destFileName 目标文件名
* @return 如果复制成功,则返回true,否则返回false
*/
public static boolean File(String srcFileName, String destFileName){
return CopyFileUtil.File(srcFileName, destFileName, false);
}

/**
* 复制单个文件
* @param srcFileName 待复制的文件名
* @param destFileName 目标文件名
* @param overlay 如果目标文件存在,是否覆盖
* @return 如果复制成功,则返回true,否则返回false
*/
public static boolean File(String srcFileName,
String destFileName, boolean overlay) {
//判断原文件是否存在
File srcFile = new File(srcFileName);
if (!srcFile.exists()){
System.out.println("复制文件失败:原文件" + srcFileName + "不存在!");
return false;
} else if (!srcFile.isFile()){
System.out.println("复制文件失败:" + srcFileName + "不是一个文件!");
return false;
}
//判断目标文件是否存在
File destFile = new File(destFileName);
if (destFile.exists()){
//如果目标文件存在,而且复制时允许覆盖。
if (overlay){
//删除已存在的目标文件,无论目标文件是目录还是单个文件
System.out.println("目标文件已存在,准备删除它!");
if(!DeleteFileUtil.delete(destFileName)){
System.out.println("复制文件失败:删除目标文件" + destFileName + "失败!");
return false;
}
} else {
System.out.println("复制文件失败:目标文件" + destFileName + "已存在!");
return false;
}
} else {
if (!destFile.getParentFile().exists()){
//如果目标文件所在的目录不存在,则创建目录
System.out.println("目标文件所在的目录不存在,准备创建它!");
if(!destFile.getParentFile().mkdirs()){
System.out.println("复制文件失败:创建目标文件所在的目录失败!" );
return false;
}
}
}
//准备复制文件
int byteread = 0;//读取的位数
InputStream in = null;
OutputStream out = null;
try {
//打开原文件
in = new FileInputStream(srcFile);
//打开连接到目标文件的输出流
out = new FileOutputStream(destFile);
byte[] buffer = new byte[1024];
//一次读取1024个字节,当byteread为-1时表示文件已经读完
while ((byteread = in.read(buffer)) != -1) {
//将读取的字节写入输出流
out.write(buffer, 0, byteread);
}
System.out.println("复制单个文件" + srcFileName + "至" + destFileName + "成功!");
return true;
} catch (Exception e) {
System.out.println("复制文件失败:" + e.getMessage());
return false;
} finally {
//关闭输入输出流,注意先关闭输出流,再关闭输入流
if (out != null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

阅读全文

与java复制文件夹相关的资料

热点内容
实数四则运算法则概念 浏览:294
cs16优化命令 浏览:869
Minecraft云服务器免费 浏览:826
png压缩最小 浏览:180
老韩综app怎么看不了了 浏览:227
只有一个程序员的体验 浏览:321
用服务器地址怎么有网 浏览:550
路由器服务器昵称是什么 浏览:715
程序员男友消失了 浏览:399
程序员搜索框自动提示 浏览:27
android44api20 浏览:677
adb刷recovery命令 浏览:697
广联达正版加密锁可以补办吗 浏览:945
java程序员一天多少行代码 浏览:948
丧尸危机java 浏览:125
华为手机怎么去除app标记未读信息 浏览:856
java监控文件夹 浏览:807
群控服务器主机怎么转变普通电脑 浏览:707
手机怎么调整app大小 浏览:455
加密门禁卡揭秘 浏览:139