1. 程式人生 > >Java復制文件,可以直接調用renameTO()方法,不要用數據流啦

Java復制文件,可以直接調用renameTO()方法,不要用數據流啦

ati 清空 puts 文件復制 新建 name ioe release strong

我想達到的效果是,一個文件復制到另一個地方,然後重命名



//判斷是否存在
File file = new File("D:/tomcat9.0.12/apache-tomcat-9.0.12/webapps/paipaixiu_mavenTomcat/upload/app");
//判斷是否存在該文件夾,不存在則新建,重啟服務器將清空該文件夾裏的所有內容
if (!file.exists() || !file.isDirectory()) {
file.mkdirs();
}

// File f = new File("D:/tomcat9.0.12/apache-tomcat-9.0.12/webapps/paipaixiu_mavenTomcat/upload/app/app-release.apk");
// //每次都要復制刷新
// copyFileByStream(new File("C:/Users/85339/Desktop/PaiPaixiu/app/release/app-release.apk"), f);
//
// //重命名,竟然也可以復制,。。。為何不直接重命名
// f.renameTo(new File("D:/tomcat9.0.12/apache-tomcat-9.0.12/webapps/paipaixiu_mavenTomcat/upload/app/派派秀.apk"));
new File("C:/Users/85339/Desktop/PaiPaixiu/app/release/app-release.apk").renameTo(
new File("D:/tomcat9.0.12/apache-tomcat-9.0.12/webapps/paipaixiu_mavenTomcat/upload/app/派派秀.apk")
);


而使用數據流復制的方法如下:
//拷貝文件
public static void copyFileByStream(File source, File dest) throws IOException {
try (InputStream inputStream = new FileInputStream(source);
OutputStream outputStream = new FileOutputStream(dest)) {
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
}
}


與方法renameTO()的效果一樣,所以建議使用renameTO()方法
使用方法:
new File("舊路徑").renameTO(new File("新路徑"));
如果不重命名則把文件名寫一樣就可以了





Java復制文件,可以直接調用renameTO()方法,不要用數據流啦