Java IO流练习题
查询D盘里根目录的所有文件和所有文件夹里的文件
package zuoye;
import java.io.File;
/**
* 查询D盘里根目录的所有文件和所有文件夹里的文件
*
* 使用递归
*/
public class Demo01 {
public static void main(String[] args) {
File file = new File("D:"+File.separator);
func(file);
}
private static void func(File file) {
File[] files = file.listFiles();
if (files != null) {
for (File f : files
) {
if (f.isFile()) {
//判断是否是文件
System.out.println(f);
}
if (f.isDirectory()) {
//判断是否有子文件
func(f);
}
}
}
}
}
编写一个方法:统计文件夹内指定类型文件的个数(比如:.ext,.java,.doc)
package zuoye;
/**
* 编写一个方法:统计文件夹内指定类型文件的个数(比如:.ext,.java,.doc)
*
*/
import java.io.File;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
File fe = new File("D:"+File.separator);//创建File对象
Find(fe);
}
public static void Find(File f) {
//创建方法
Map<String, Integer> map = new HashMap<String, Integer>();//创建Map存后缀和个数
String[] aa = f.list();//把f里所有文件放用list()放到aa数组里边
for (int i = 0; i < aa.length; i++) {
//遍历aa数组
String[] b = aa[i].split("\\.");//将文件按“ . ” 进行分割放入数组b 若为文件 就有后缀,数组的长度就为2,若为文件夹,数组长度为1
if (b.length>=2) {
if(map.containsKey(b[1])) {
//将后缀放入Map 并存入个数
map.put(b[1], map.get(b[1])+1);
}else {
map.put(b[1],1);
}
}
}
for(Map.Entry<String, Integer> m: map.entrySet()) {
//遍历map
System.out.println("."+m.getKey()+"有"+m.getValue()+"个");
}
}
}
提示用户输入任意文件(文件夹)路径,判断该文件(文件夹)是否存在,完成以下要求
a.如果该文件(文件夹)存在,则判断是文件夹还是文件
1)如果是文件夹,提示用户输入新名称,以新名称重命名该文件夹
2)如果是文件,那么在控制台输出该文件的扩展名
b.如果该文件(文件夹)不存在,则提示"该文件(文件夹)不存在
package zuoye;
import java.io.File;
import java.util.Scanner;
/**
* 提示用户输入任意文件(文件夹)路径,判断该文件(文件夹)是否存在
*
*/
public class Demo03 {
public static void main(String[] args)