包括了文件夹的新建,拷贝与删除等
public class Test2 {
public static void main(String[] args) throws IOException {
// 创建文件夹文件并写内容
File file1 = new File("E:/MXY/mxy.txt");
// 先创建最底层文件或文件夹的父级文件,file1.mkdir();只能创建最底层文件夹,file1.mkdirs();创建多级
file1.getParentFile().mkdir();
// 创建文件
file1.createNewFile();
Writer rt = null;
rt = new FileWriter(file1);
rt.write("今天天气不错");
rt.write("\r\t");
rt.write("适合敲代码");
rt.flush();
rt.close();
// 显示目录
System.out.println(file1.listFiles());
// 显示文件名
System.out.println(file1.getName());
// renameTo移动目录,这里测试 了不是复制,只是重命名,文件夹层数不一致没用
File file2 = new File("E:/MY/ddd/sss");
file2.getParentFile().mkdir();
file2.renameTo(new File("E:/kkk/www/www"));
// 调用拷贝文件夹方法
File src = new File("E:/MXY");
System.out.println(Arrays.toString(src.listFiles()));
File dest = new File("D:/MXY");
copyDetails(src, dest);
// 打印目录
System.out.println(Arrays.toString(dest.listFiles()));
// 文件夹最后修改日期
System.out.println(new SimpleDateFormat().format(new Date(dest.lastModified())));
// 删除原文件夹
delete(src);
}
// 拷贝文件夹方法
public static void copyDetails(File src, File dest) throws IOException {
if (src.isFile()) {
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
copyFile(src, dest);
} else {
dest.mkdirs();
File[] files = src.listFiles();
for (File srcFile : files) {
System.out.println(srcFile);
copyDetails(srcFile, new File(dest, srcFile.getName()));
}
}
}
// 文件拷贝
public static void copyFile(File src, File dest) throws IOException {
InputStream is = null;
OutputStream os = null;
is = new FileInputStream(src);
os = new FileOutputStream(dest);
byte[] a = new byte[1024];
int len = -1;
while ((len = is.read(a)) != -1) {
os.write(a, 0, len);
}
os.flush();
os.close();
is.close();
}
// 删除文件夹,递归,找到最后一层开始删除,一层一层往上删除文件
public static void delete(File file) {
File[] files = file.listFiles();
if (files != null) {
for (File f : files) {
if (file.isDirectory()) {
delete(f);
} else {
file.delete();
}
}
}
file.delete();
}
}