🔎这里是JAVA成仙路,关注我学习JAVA不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
**前言:本章给大家来了三个IO小练习题,代码是当时初学时写的,写的不咋地,仅供参考哈。
JAVA成仙路从基础开始讲,后续会讲到JAVA高级,中间会穿插面试题和项目实战,希望能给大家带来帮助!**
@[TOC]
一、将所有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们捧场!** 🎈🎈🍕🍕
![在这里插入图片描述](https://ucc.alicdn.com/images/user-upload-01/a3e34431e4814f8f89964fb03b0d5d67.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qGD6Iqx6ZSu56We,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)