1. 练习一
在当前模块下的 text 文件夹中创建一个 io.txt 文件
import java.io.File;
import java.io.IOException;
public class Practice1 {
public static void main(String[] args) {
File file = new File("D:\\kaifamiao");
File file1 = new File(file, "text\\ebook\\IO");
File text = new File(file1, "io.txt");
// 判断文件夹是否存在,如果不存在则建立
if (!file1.exists()) {
boolean mkdir = file1.mkdirs();
System.out.println(mkdir); // true
}
try {
text.createNewFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
2. 练习二
删除一个多级文件夹
public class Exam2 {
public static void main(String[] args) {
String path = "D:/Test/小说";
File file = new File(path);
if(deleteFolder(file)){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
}
public static boolean deleteFolder(File file){
if (!file.exists()) {
return false;
} else {
try {
File[] files = file.listFiles();
if (files != null) {
for (File c : files) {
if (c.isDirectory()) {
deleteFolder(c);
} else {
c.delete();
}
}
}
return file.delete();
} catch (Exception e) {
System.out.println("删除文件夹出错: " + e.getMessage());
return false;
}
}
}
}
3. 练习三
统计一个文件夹中每种文件的个数并打印(不考虑目录)
public class Exam3 {
//统计一个文件夹中每种文件的个数并打印(不考虑目录)
public static void main(String[] args) {
File file = new File("D:/Test");
fileCount(file);
}
public static void fileCount(File file){
if(file == null || !file.exists()){
throw new RuntimeException();
}
HashMap<String, Integer> map = new HashMap<>();
File[] files = file.listFiles();
for(File f : files){
if(f.isFile()){
String name = f.getName();
String[] split = name.split("\\.");
String key = split[split.length-1];
map.put(key,map.getOrDefault(key,0)+1);
}
}
for (String key : map.keySet()) {
System.out.println("文件扩展名: " + key + " 数量: " + map.get(key));
}
}
}
4. 练习四
计算出磁盘上指定文件夹的实际大小
public class Exam4 {
//计算出磁盘上指定文件夹的实际大小
public static void main(String[] args) {
File dir = new File("D:/Test");
long size = getDirSize(dir);
System.out.println(size);
}
public static long getDirSize(File dir){
if(dir == null && !dir.exists()){
throw new RuntimeException();
}
long size = 0;
if(dir.isDirectory()){
File[] files =dir.listFiles();
for(File file :files){
size += getDirSize(file);
}
}
else {
size += dir.length();
}
return size;
}
}
5. 练习五
计算指定目录下所有文件大小
public class Exam5 {
//计算指定目录下所有文件大小
public static long getDirFileSize(File dir){
if(dir == null || !dir.exists()){
throw new RuntimeException();
}
long size = 0;
File[] files = dir.listFiles((f) -> f.isFile());
for(File file : files){
size += file.length();
}
return size;
}
public static void main(String[] args) {
File dir = new File("D:/Test");
long size = getDirFileSize(dir);
System.out.println(size);
}
}