怎么做个JAVA应用程序,把一个文件复制到指定目录。
5条回答 默认 最新
- suziwen 2010-03-29 12:24关注
java文件复制程序
[url]http://www.easyjf.com/blog.ejf?cmd=doc&id=1048581[/url]
[code="java"]
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;/**
- Title: 文件处理工具类
- Description:实现文件的简单处理,复制文件、目录等
- Copyright: Copyright (c) 2005
- Company: www.easyjf.com
- @author 天一
-
@version 1.0
*/
public class FileUtil {/**
- 复制目录下的文件(不包括该目录)到指定目录,会连同子目录一起复制过去。
- @param targetFile
- @param path */ public static void copyFileFromDir(String targetDir, String path) { File file = new File(path); createFile(targetDir, false); if (file.isDirectory()) { copyFileToDir(targetDir, listFile(file)); } }
/**
- 复制目录下的文件(不包含该目录和子目录,只复制目录下的文件)到指定目录。
- @param targetDir
- @param path */ public static void copyFileOnly(String targetDir, String path) { File file = new File(path); File targetFile = new File(targetDir); if (file.isDirectory()) { File[] files = file.listFiles(); for (File subFile : files) { if (subFile.isFile()) { copyFile(targetFile, subFile); } } } }
/**
- 复制目录到指定目录。targetDir是目标目录,path是源目录。
- 该方法会将path以及path下的文件和子目录全部复制到目标目录
- @param targetDir
- @param path */ public static void copyDir(String targetDir, String path) { File targetFile = new File(targetDir); createFile(targetFile, false); File file = new File(path); if (targetFile.isDirectory() && file.isDirectory()) { copyFileToDir(targetFile.getAbsolutePath() + "/" + file.getName(), listFile(file)); } }
/**
- 复制一组文件到指定目录。targetDir是目标目录,filePath是需要复制的文件路径
- @param targetDir
- @param filePath */ public static void copyFileToDir(String targetDir, String... filePath) { if (targetDir == null || "".equals(targetDir)) { System.out.println("参数错误,目标路径不能为空"); return; } File targetFile = new File(targetDir); if (!targetFile.exists()) { targetFile.mkdir(); } else { if (!targetFile.isDirectory()) { System.out.println("参数错误,目标路径指向的不是一个目录!"); return; } } for (String path : filePath) { File file = new File(path); if (file.isDirectory()) { copyFileToDir(targetDir + "/" + file.getName(), listFile(file)); } else { copyFileToDir(targetDir, file, ""); } } }
/**
- 复制文件到指定目录。targetDir是目标目录,file是源文件名,newName是重命名的名字。
- @param targetFile
- @param file
- @param newName */ public static void copyFileToDir(String targetDir, File file, String newName) { String newFile = ""; if (newName != null && !"".equals(newName)) { newFile = targetDir + "/" + newName; } else { newFile = targetDir + "/" + file.getName(); } File tFile = new File(newFile); copyFile(tFile, file); }
/**
- 复制文件。targetFile为目标文件,file为源文件
- @param targetFile
- @param file */ public static void copyFile(File targetFile, File file) { if (targetFile.exists()) { System.out.println("文件" + targetFile.getAbsolutePath() + "已经存在,跳过该文件!"); return; } else { createFile(targetFile, true); } System.out.println("复制文件" + file.getAbsolutePath() + "到" + targetFile.getAbsolutePath()); try { InputStream is = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(targetFile); byte[] buffer = new byte[1024]; while (is.read(buffer) != -1) { fos.write(buffer); } is.close(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
public static String[] listFile(File dir) {
String absolutPath = dir.getAbsolutePath();
String[] paths = dir.list();
String[] files = new String[paths.length];
for (int i = 0; i < paths.length; i++) {
files[i] = absolutPath + "/" + paths[i];
}
return files;
}public static void createFile(String path, boolean isFile){
createFile(new File(path), isFile);
}public static void createFile(File file, boolean isFile) {
if (!file.exists()) {
if (!file.getParentFile().exists()) {
createFile(file.getParentFile(), false);
} else {
if (isFile) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
} else {
file.mkdir();
}
}
}
}
}[/code]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 ROS Turtlebot3 多机协同自主探索环境时遇到的多机任务分配问题,explore节点
- ¥15 Matlab怎么求解含参的二重积分?
- ¥15 苹果手机突然连不上wifi了?
- ¥15 cgictest.cgi文件无法访问
- ¥20 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改
- ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
- ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
- ¥40 串口调试助手打开串口后,keil5的代码就停止了
- ¥15 电脑最近经常蓝屏,求大家看看哪的问题