综合练习
需求:在当前模块下的aaa文件夹中创建一个a.txt文件
package MyFile;
import java.io.File;
import java.io.IOException;
public class Test1 {
public static void main(String[] args) throws IOException {
File file=new File("MyFile\\aaa");
file.mkdirs();
File src=new File(file,"a.txt");
boolean b = src.createNewFile();
if(b){
System.out.println("创建成功");
}else {
System.out.println("创建失败");
}
}
}
需求:定义一个方法找某一个文件夹中,是否有以avi结尾的电影。(暂时不需要考虑子文件夹)
package MyFile;
import java.io.File;
public class Test2 {
public static void main(String[] args) {
File file=new File("D:\\aaa\\bbb");
boolean b = haveAVI(file);
System.out.println(b);
}
public static boolean haveAVI(File file){
File[] files = file.listFiles();
for (File f : files) {
if(f.isFile()&&f.getName().endsWith(".avi")){
return true;
}
}
return false;
}
}
需求:定义一个方法找某一个文件夹中,是否有以avi结尾的电影。(需要考虑子文件夹)
package MyFile;
import java.io.File;
public class Test3 {
public static void main(String[] args) {
findAVI();
}
public static void findAVI(){
File[] arr = File.listRoots();
for (File f : arr) {
findAVI(f);
}
}
public static void findAVI(File src){
File[] files = src.listFiles();
if(files!=null){
for (File file : files) {
if(file.isFile()){
String name = file.getName();
if(name.endsWith(".avi")){
System.out.println(file);
}else {
findAVI(file);
}
}
}
}
}
}
需求:删除一个多级文件夹
package MyFile;
import java.io.File;
public class Test4 {
public static void main(String[] args) {
File file=new File("D:\\aaa\\src");
delete(file);
}
public static void delete(File src){
File[] files = src.listFiles();
for (File file : files) {
if(file.isFile()){
file.delete();
}else{
delete(file);
}
}
src.delete();
}
}
需求:统计一个文件夹中每种文件的大小
package MyFile;
import java.io.File;
public class Test5 {
public static void main(String[] args) {
File f=new File("D:\\aaa\\src");
System.out.println(getLen(f));
}
public static long getLen(File src){
long len=0;
File[] files = src.listFiles();
for (File file : files) {
if(file.isFile()) {
len=len+file.length();
}else {
len=len+getLen(file);
}
}
return len;
}
}
需求:统计一个文件夹中每种文件的个数并打印(考虑子文件夹)
package MyFile;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Test6 {
public static void main(String[] args) {
File f=new File("D:\\aaa\\src");
System.out.println(getCount(f));
}
public static HashMap<String, Integer> getCount(File src){
HashMap<String,Integer> hm=new HashMap<>();
File[] files = src.listFiles();
for (File file : files) {
if(file.isFile()){
String name = file.getName();
String[] arr = name.split("\\.");
if(arr.length>=2){
String endName=arr[arr.length-1];
if(hm.containsKey(endName)){
int count = hm.get(endName);
count++;
hm.put(endName,count);
}else {
hm.put(endName,1);
}
}
}else {
HashMap<String,Integer> sonMap=getCount(file);
Set<Map.Entry<String, Integer>> entries = sonMap.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
String key = entry.getKey();
Integer value = entry.getValue();
if(hm.containsKey(key)){
int count= hm.get(key);
hm.put(key,value);
count=count+value;
}else {
hm.put(key,value);
}
}
}
}
return hm;
}
}