JAVA 文件IO操作练习,需要完整代码解答

2025-04-23 17:56:27
推荐回答(1个)
回答1:

描述较为简略,如有疑问可追答

public static void main(String[] s){
move(new File("源文件夹"), new File("需要移动到的文件夹"));
}

/**
* 将文件(夹)移动到令一个文件夹
*/
public static void move(File resFile, File objFolderFile, boolean flag)
throws IOException {
copy(resFile, objFolderFile, flag);
delete(resFile);
}
/**
* 复制文件(夹)到一个目标文件夹
*
* @param resFile
* 源文件(夹)
* @param objFolderFile
* 目标文件夹
*/
public static void copy(File resFile, File objFolderFile, boolean flag)
throws IOException {
if (!resFile.exists())
return;
if (!objFolderFile.exists())
objFolderFile.mkdirs();
if (resFile.isFile()) {
File objFile = new File(objFolderFile.getPath() + File.separator
+ resFile.getName());
// 复制文件到目标地
InputStream ins = new FileInputStream(resFile);
FileOutputStream outs = new FileOutputStream(objFile);
byte[] buffer = new byte[1024 * 512];
int length;
while ((length = ins.read(buffer)) != -1) {
outs.write(buffer, 0, length);
}
ins.close();
outs.flush();
outs.close();
} else {
String objFolder;
if (flag)
objFolder = objFolderFile.getPath();
else
objFolder = objFolderFile.getPath() + File.separator
+ resFile.getName();

File _objFolderFile = new File(objFolder);
_objFolderFile.mkdirs();
for (File sf : resFile.listFiles()) {
copy(sf, new File(objFolder), false);
}
}
}
/**
* 删除文件(夹)
*/
public static void delete(File file) {
if (file == null)
return;
if (!file.exists())
return;
if (file.isFile()) {
file.delete();
} else {
for (File f : file.listFiles()) {
delete(f);
}
file.delete();
}
}