【JAVA百炼成仙】特别篇——(三个IO练习题)

举报
桃花键神 发表于 2022/04/17 12:18:37 2022/04/17
【摘要】 【JAVA百炼成仙】特别篇——(三个IO练习题)

🔎这里是JAVA成仙路,关注我学习JAVA不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

前言:本章给大家来了三个IO小练习题,代码是当时初学时写的,写的不咋地,仅供参考哈。

JAVA成仙路从基础开始讲,后续会讲到JAVA高级,中间会穿插面试题和项目实战,希望能给大家带来帮助!

@[TOC]
在这里插入图片描述

一、将所有JAVA文件内容添加到一个文件中

```java
package A1;

import java.io.*;

/**
 * @author yeqv
 * @program A2
 * @Classname a4
 * @Date 2022/1/18 17:06
 * @Email w16638771062@163.com
 */
public class a4 {
    public static void main(String[] args) throws FileNotFoundException {
        File file = new File("D:\\idea\\ja");
        thow(file);


    }

    public static void thow(File file) {
        //判断文件名是否为目录
        if (file.isDirectory()) {
            //转为FILE类型数组
            File[] files = file.listFiles();
            //遍历子目录
            for (File file1 : files) {
                //判断是否为子目录,如果是就递归
                if (file1.isDirectory()) {
                    thow(file1);
                }
                //判断子目录是否是普通文件,并且后缀是java
                if (file1.isFile() && file1.getName().endsWith(".java")) {
                    //new一个输入流对象和输出流对象,并创建一个文件
                    try (var a = new FileOutputStream("D:\\java123.java", true); var b = new FileInputStream(file1.getAbsolutePath())) {
              //将对象b的内容添加到文件a中
                        b.transferTo(a);
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }
            }

        }
        //判断文件是否是普通文件,并且后缀是java
        if (file.isFile() && file.getName().endsWith(".java")) {
            //new一个输入流对象和输出流对象,并创建一个文件
            try (var a = new FileOutputStream("D:\\java123.java", true); var b = new FileInputStream(file.getAbsolutePath())) {
                //将对象b的内容添加到文件a中
                b.transferTo(a);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

    }
}

二、统计文件中每个单词出现的数量

package demo;

import java.io.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author yeqv
 * @program A2
 * @Classname A3
 * @Date 2022/1/19 20:55
 * @Email w16638771062@163.com
 */
public class A3 {

    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        List<String> list = new ArrayList<>();
        File file = new File("D:\\jdk.txt");
        Pattern pattern = Pattern.compile("\s[a-zA-Z]+\s");
        String len;
        try {
            BufferedReader buff = new BufferedReader(new FileReader(file));
            while ((len = buff.readLine()) != null) {
                Matcher matcher = pattern.matcher(len);
                while (matcher.find()) {
                    set.add(matcher.group());
                    list.add(matcher.group());
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        int b = 1;
        for (String s : set) {
            int a = 0;
            for (String s1 : list) {
                if (s.equals(s1)) {
                    a += 1;
                }
            }
            System.out.printf("%d单词:%s 数量:%d%n", b, s, a);
            b += 1;
        }

    }

}

三、将一个目录下的所有文件复制到另一个新目录

package demo;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

/**
 * @author yeqv
 * @program A2
 * @Classname A5
 * @Date 2022/1/20 16:04
 * @Email w16638771062@163.com
 */
public class A5 {
    //复制目录
    public static void main(String[] args) throws IOException {
        String a = "D:\\金山打字";
        String b = "D:\\银山打字";
        copy1(a, b);

    }

    public static void copy1(String a, String b) throws IOException {
        copy2(new File(a), new File(b));
    }

    public static void copy2(File file, File file1) throws IOException {
        if (!file1.exists()) {
            file1.mkdirs();
        }
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File file2 : files) {
                if (file2.isDirectory()) {
                    copy2(file2, new File(file1.getPath(), file2.getName()));
                } else {
                    Files.copy(file2.toPath(), Paths.get(file1.getPath() + "\\" + file2.getName()));
                }

            }

        }
    }

}

四、完结

JAVA基础完结,下一个专栏是23种设计模式,以虹猫蓝兔七侠传的故事为主题。新专栏下周一开更,欢迎hxd们捧场! 🎈🎈🍕🍕
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。