题目一:
在磁盘中新建一个文件(如果目录结构不存在,则创建目录)
文件名:data.txt
文件日录:C:\demo\test\files (盘符不限) linux目录~/demo/test/files
题二
在新建的data.txt中添加如下内容:
张三,测试,2019-02-18 02-22-00
李四,测试,2019-02-19 02-22-00
王二,测试,2019-02-20 02-22-00
题三:
递归遍历demo目录 读取以txt 结尾的文件,并将文件的内容以一下格式在控制台输出
注意时间的格式
2019/02/18 02:22:00,测试,张三
2019/02/19 02:22:00,测试,李四
2019/02/20 02:22:00,测试,王二
本题主要考察:
- 对 IO 流的使用
- 对API的熟悉程度
- 对递归算法的熟悉程度
- 工作中常见的功能点
代码实现:
java
public class FileWriteTest {
public static void main(String[] args) throws IOException {
String url = "D:\\demo\\test\\file";
File fileDir = new File(url);
if (!fileDir.exists()){
fileDir.mkdirs();
}
FileWriter fw = null;
BufferedWriter bw = null;
StringBuffer sb = new StringBuffer();
sb.append("张三,测试,2019-02-18 02-22-00" + System.getProperty("line.separator"));
sb.append("李四,测试,2019-02-19 02-22-00" + System.getProperty("line.separator"));
sb.append("王二,测试,2019-02-20 02-22-00" + System.getProperty("line.separator"));
try {
File file = new File(String.format("%s/%s.%s", url, "data", "txt"));
if (file.createNewFile()) {
System.out.println("文件创建成功");
fw = new FileWriter(file);
bw = new BufferedWriter(fw);
bw.write(sb.toString());
} else {
System.out.println("文件已经存在");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bw != null) {
bw.close();
}
if (fw != null) {
fw.close();
}
}
}
}
java
package com.siro.datastructures.mianshi;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author sea
* @date 2023-08-18
*/
public class ReadFromFile {
/**
* 以行为单位读取文件,常用于读面向行的格式化文件
*/
public static void readFileByLines(String fileName) {
File file = new File(fileName);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String tempString = null;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null) {
//原始数据
// System.out.println(tempString);
String[] split = tempString.split(",");
SimpleDateFormat sdfOld = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date parse = sdfOld.parse(split[2]);
SimpleDateFormat sdfNew = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String format = sdfNew.format(parse);
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(format + ",");
stringBuffer.append(split[1] + ",");
stringBuffer.append(split[0]);
//格式变化后的数据
System.out.println(stringBuffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
}
public static void main(String[] args) {
String fileDir = "D:/demo/test/file";
File floder = new File(fileDir);
if (!floder.isDirectory()) {
System.out.print("请输入文件夹的正确路径");
} else {
File[] files = floder.listFiles();
for (File f : files) {
if (f.getName().endsWith(".txt")) {
ReadFromFile.readFileByLines(f.getPath());
}
}
}
}
}
如果有收获! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客