工具更新
更新:FileUtils 更新方法 deleteAllFile() 用于删除文件夹 更新:FileUtils 更新方法 copyAllFile() 用于复制文件夹 更新:FileUtils 更新方法 fileChannelCopy() 用于复制文件(通道方式) 删除:FileUtils 的构造方法
This commit is contained in:
parent
c89fcf4116
commit
fb58c9838f
@ -9,6 +9,7 @@ import java.nio.channels.FileChannel;
|
||||
|
||||
import me.skymc.taboolib.methods.MethodsUtils;
|
||||
|
||||
@Deprecated
|
||||
public class CopyUtils {
|
||||
|
||||
public static long Copy(File file1, File file2) throws IOException {
|
||||
|
@ -4,6 +4,7 @@ import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.nio.channels.FileChannel;
|
||||
import java.util.List;
|
||||
|
||||
import me.skymc.taboolib.message.MsgUtils;
|
||||
@ -34,6 +35,12 @@ public class FileUtils {
|
||||
return "[IP ERROR]";
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建并获取文件
|
||||
*
|
||||
* @param filePath
|
||||
* @return
|
||||
*/
|
||||
public static File file(String filePath) {
|
||||
File file = new File(filePath);
|
||||
if (!file.exists()) {
|
||||
@ -46,6 +53,13 @@ public class FileUtils {
|
||||
return file;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建并获取文件
|
||||
*
|
||||
* @param Path
|
||||
* @param filePath
|
||||
* @return
|
||||
*/
|
||||
public static File file(File Path, String filePath) {
|
||||
File file = new File(Path, filePath);
|
||||
if (!file.exists()) {
|
||||
@ -58,6 +72,96 @@ public class FileUtils {
|
||||
return file;
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文件夹
|
||||
*
|
||||
* @param file
|
||||
*/
|
||||
public void deleteAllFile(File file) {
|
||||
if (!file.exists()) {
|
||||
return;
|
||||
}
|
||||
if (file.isFile()) {
|
||||
file.delete();
|
||||
return;
|
||||
}
|
||||
File[] files = file.listFiles();
|
||||
for (int i = 0; i < files.length; i++) {
|
||||
deleteAllFile(files[i]);
|
||||
}
|
||||
file.delete();
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制文件夹
|
||||
*
|
||||
* @param file1 文件1
|
||||
* @param file2 文件2
|
||||
* @throws Exception
|
||||
*/
|
||||
public void copyAllFile(String file1, String file2) throws Exception {
|
||||
File _file1 = new File(file1);
|
||||
File _file2 = new File(file2);
|
||||
if (!_file2.exists()) {
|
||||
if (!_file1.isDirectory()) {
|
||||
_file2.createNewFile();
|
||||
} else {
|
||||
_file2.mkdirs();
|
||||
}
|
||||
}
|
||||
if (_file1.isDirectory()) {
|
||||
for (File file : _file1.listFiles()) {
|
||||
if (file.isDirectory()) {
|
||||
file.getName();
|
||||
copyAllFile(file.getAbsolutePath(), file2 + "/" + file.getName());
|
||||
} else {
|
||||
fileChannelCopy(file, new File(file2 + "/" + file.getName()));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fileChannelCopy(_file1, _file2);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制文件(通道)
|
||||
*
|
||||
* @param file1 文件1
|
||||
* @param file2 文件2
|
||||
*/
|
||||
public void fileChannelCopy(File file1, File file2) {
|
||||
FileInputStream fileIn = null;
|
||||
FileOutputStream fileOut = null;
|
||||
FileChannel channelIn = null;
|
||||
FileChannel channelOut = null;
|
||||
try {
|
||||
fileIn = new FileInputStream(file1);
|
||||
fileOut = new FileOutputStream(file2);
|
||||
channelIn = fileIn.getChannel();
|
||||
channelOut = fileOut.getChannel();
|
||||
channelIn.transferTo(0, channelIn.size(), channelOut);
|
||||
} catch (Exception e) {
|
||||
//
|
||||
} finally {
|
||||
try {
|
||||
fileIn.close();
|
||||
channelIn.close();
|
||||
fileOut.close();
|
||||
channelOut.close();
|
||||
} catch (Exception e) {
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过输入流读取文本
|
||||
*
|
||||
* @param in
|
||||
* @param size
|
||||
* @param encode
|
||||
* @return
|
||||
*/
|
||||
public static String getStringFromInputStream(InputStream in, int size, String encode) {
|
||||
try {
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
@ -77,6 +181,14 @@ public class FileUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过文件读取文本
|
||||
*
|
||||
* @param file
|
||||
* @param size
|
||||
* @param encode
|
||||
* @return
|
||||
*/
|
||||
public static String getStringFromFile(File file, int size, String encode) {
|
||||
try {
|
||||
FileInputStream fin = new FileInputStream(file);
|
||||
@ -100,6 +212,13 @@ public class FileUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过 URL 读取文本
|
||||
*
|
||||
* @param url
|
||||
* @param size
|
||||
* @return
|
||||
*/
|
||||
public static String getStringFromURL(String url, int size) {
|
||||
try {
|
||||
URLConnection conn = new URL(url).openConnection();
|
||||
@ -123,32 +242,12 @@ public class FileUtils {
|
||||
}
|
||||
|
||||
/**
|
||||
* Write a UTF8 file
|
||||
*
|
||||
* @param strs list of lines
|
||||
* @param f file to write
|
||||
*
|
||||
* 下载文件
|
||||
*
|
||||
* @param urlStr
|
||||
* @param filename
|
||||
* @param saveDir
|
||||
*/
|
||||
public FileUtils(List<String> strs, File f) throws IOException
|
||||
{
|
||||
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
|
||||
new FileOutputStream(f), "UTF8"));
|
||||
for(String s : strs) {
|
||||
out.write(s+"\n");
|
||||
}
|
||||
out.flush();
|
||||
out.close();
|
||||
}
|
||||
|
||||
public FileUtils(String str, File f) throws IOException
|
||||
{
|
||||
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
|
||||
new FileOutputStream(f), "UTF8"));
|
||||
out.write(str);
|
||||
out.flush();
|
||||
out.close();
|
||||
}
|
||||
|
||||
public static void download(String urlStr, String filename, File saveDir) {
|
||||
try {
|
||||
URL url = new URL(urlStr);
|
||||
@ -185,6 +284,12 @@ public class FileUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取字节
|
||||
*
|
||||
* @param in
|
||||
* @return
|
||||
*/
|
||||
private static byte[] read(InputStream in) {
|
||||
byte[] buffer = new byte[1024];
|
||||
int len = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user