【JAVA百炼成仙】特别篇——(三个IO练习题)
【摘要】 【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)