1. 使用File类相关的方法 ,编写删除文件夹的方法 要求:既能删除空文件夹 也能删除非空文件夹
public static void test1(File file) {
File[] allFile = file.listFiles();
for (File f:allFile) {
if (file.exists()){
if (f.isFile()){//是文件 直接删除
file.delete();
}else {// 文件夹 获取所有内容
File[] files = file.listFiles();
if(files.length != 0 ){
for (File fi: files) {
test1(fi);
}
f.delete();
}else {
f.delete();
}
}
}else{
System.out.println("无文件");
}
}
}
2. 使用绝对路径,在D盘创建一个testIO文件夹,然后再testIO文件中创建一个1.txt文件中; 使用相对路径,在当前项目下创建一个testIO文件夹,然后再testIO文件中创建一个2.txt文件中
public static void test2() throws IOException {
File file = new File("D:\\testIO");
file.mkdir();
File file1 = new File(file,"1.txt");
file1.createNewFile();
File file2 = new File("teseIO");
file2.mkdir();
File file3 = new File(file2,"2.txt");
file3.createNewFile();
}
3. 文件夹的复制 提示:结合 File类 和 字节输入输出流 相关的方法
public static void test3(File src,File target) throws IOException {
if (src.isFile()){
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(target);
int readNum =-1;
byte[] cs = new byte[1024*1024];
while ((readNum = fis.read(cs)) != -1){
String str =new String(cs,0,readNum);
fos.write(str.getBytes());
}
fis.close();
fos.close();
}else {
target.mkdir();
File[] files = src.listFiles();
for (File f:files) {
test3(f,new File(target,f.getName()));
}
}
}