題目一:
在磁盤中新建一個文件(如果目錄結構不存在,則創建目錄)
文件名: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的熟悉程度
- 對遞歸算法的熟悉程度
- 工作中常見的功能點
代碼實現:
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();}}}
}
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());}}}}
}
如果有收獲! 希望老鐵們來個三連,點贊、收藏、轉發。
創作不易,別忘點個贊,可以讓更多的人看到這篇文章,順便鼓勵我寫出更好的博客