0
点赞
收藏
分享

微信扫一扫

Day11_file&流_侯一鸣

星河出山 2022-01-11 阅读 68
java

Task01 递归删除目录

题目

目录结构为如下(尽量不要在c盘中测试哈)

firstLevel目录中,包含一个secondLevel目录和a1.txt和b1.java文件

secondLevel目录中包含dir1和dir2两个目录,和a2.txt和b2.java文件

dir1目录中包含a3.txt和b3.java文件

dir2目录是一个空目录 要求删除firstLevel目录

代码

package day11.Task01;

import java.io.File;

public class Task01 {
    public static void main(String[] args) {
        File file = new File("D:\\wangdao\\first","firstLevel");
        deleteFile(file);
    }

    public static void deleteFile(File file){
        File [] s = file.listFiles();
        if(s.length == 0){
            file.delete();
        }
        for (int i = 0; i < s.length; i++) {
            if (s[i].isFile()){
                s[i].delete();
            }
            else deleteFile(s[i]);
            file.delete();
        }
    }

//    public static void deleteFile(File file){
//        File [] s = file.listFiles();
//        for (int i = 0; i < s.length; i++) {
//            if (s[i].delete()){
//
//            }
//            else deleteFile(s[i]);
//            file.delete();
//        }
//    }
}

Task02 :输出流-1

题目

有这样的一个words数组,数组中每个字符串的格式为“词性:单词”

String[] words = {“verb:eat”,“verb:drink”,“verb:sleep”,“verb:play”,“noun:rice”,“noun:meat”,“noun:hand”,"noun:hair "};

根据单词性质动词verb全部存入verb.txt文件中

根据单词性质名词noun全部存入noun.txt文件中

代码

package day11.Task02;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class Task02 {
    public static void main(String[] args) throws IOException {
        File file1 = new File("D:\\wangdao\\first\\verb.txt");
        file1.createNewFile();
        File file2 = new File("D:\\wangdao\\first\\noun.txt");
        file2.createNewFile();
        String[] words =
                {"verb:eat","verb:drink","verb:sleep","verb:play","noun:rice","noun:meat","noun:hand","noun:hair "};
        FileOutputStream verbOutputStream = new FileOutputStream("verb.txt");
        FileOutputStream nounOutputStream = new FileOutputStream("noun.txt");
        for (int i = 0; i < words.length; i++) {
            String lineSeparator = System.lineSeparator();
            byte[] bytes = words[i].getBytes();
            if (words[i].startsWith("verb")){
                verbOutputStream.write(bytes);
                verbOutputStream.write(lineSeparator.getBytes());
            }else{
                nounOutputStream.write(bytes);
                nounOutputStream.write(lineSeparator.getBytes());
            }
        }
        verbOutputStream.close();
        nounOutputStream.close();
    }
}

结果

image-20220110222554025image-20220110222626113

Task03:输出流-2

问题

递归查找指定目录中(包括子目录中),所有的.java文件,并且,把所有这些找到的java文件的文件名, 写入到一个指定文件中。

代码

package day11.Task03;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class Task03 {
    public static void main(String[] args) throws IOException {
        File file = new File("D:\\wangdao\\first\\java.txt");
        file.createNewFile();
        File filejava = new File("D:\\wangdao\\first\\findjava");
        findJava(filejava);
    }

    public static void findJava(File file) throws IOException {
        FileOutputStream fileOutputStream = new FileOutputStream("java.txt",true
        );
        String lineSeparator = System.lineSeparator();
        File[] files = file.listFiles();
        if (files.length == 0){
            return;
        }
        for (int i = 0; i < files.length; i++) {
            if(files[i].isFile() ) {
                if (files[i].getName().endsWith(".java")){
                    
                    fileOutputStream.write(files[i].getName().getBytes());
                    fileOutputStream.write(lineSeparator.getBytes());

                }

            }
            else{
                findJava(files[i]);
            }
        }
    }
}

结果

image-20220110233049582

举报

相关推荐

0 条评论