IO流面试题

题目一:
在磁盘中新建一个文件(如果目录结构不存在,则创建目录)
文件名: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,测试,王二


本题主要考察

  1. 对 IO 流的使用
  2. 对API的熟悉程度
  3. 对递归算法的熟悉程度
  4. 工作中常见的功能点

代码实现

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());}}}}
}

如果有收获! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/43103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows10 安装WSL2, Ubuntu,docker

AI- 通过docker开发调试部署ChatLLM 阅读时长:10分钟 本文内容: window上安装ubuntu虚拟机,并在虚拟机中安装docker,通过docker部署数字人模型,通过vscode链接到虚拟机进行开发调试.调试完成后,直接部署在云…

优漫动游零基础如何学习好UI设计

智能时代的来临,很多企业都越来越注重用户体验这一块,想要有一个吸引用户的好页面,UI设计师岗位不可或缺,如今越来越多的人想要学习UI设计技术,那么对于零基础小白如何学习好UI设计呢? 零基础小白如何学习好UI设计…

变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践

目录导读 变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践1. 什么是变更通知2. 变更通知的场景分析3. 变更通知的技术方案3.1 变更通知的技术实现方案 4. 变更通知的最佳实践总结5. 参考资料 变更通知在开源SpringBoot/SpringCloud微服务中的最佳实践 1. 什么是变更通…

Ubuntu在自己的项目中使用pcl

1、建立一个文件夹,如pcl_demos,里面建立一个.cpp文件和一个cmake文件 2、打开终端并进入该文件夹下,建立一个build文件夹存放编译的结果并进入该文件夹 3、对上一级进行编译 cmake .. 4、生成可执行文件 make 5、运行该可执行文件 6、可视…

最强自动化测试框架Playwright(30)-JS句柄

在 Playwright 中,JSHandle 是一个表示浏览器中 JavaScript 对象的类。它提供了与网页中的 JavaScript 对象进行交互和操作的方法。 可以通过调用 Playwright中的 evaluateHandle 或 evaluate 方法来获取 JSHandle from playwright.sync_api import sync_playwrig…

微服务中间件-分布式缓存Redis

分布式缓存 a.Redis持久化1) RDB持久化1.a) RDB持久化-原理 2) AOF持久化3) 两者对比 b.Redis主从1) 搭建主从架构2) 数据同步原理(全量同步)3) 数据同步原理(增量同步) c.Redis哨兵1) 哨兵的作用2) 搭建Redis哨兵集群3) RedisTem…

金融语言模型:FinGPT

项目简介 FinGPT是一个开源的金融语言模型(LLMs),由FinNLP项目提供。这个项目让对金融领域的自然语言处理(NLP)感兴趣的人们有了一个可以自由尝试的平台,并提供了一个与专有模型相比更容易获取的金融数据。…

Java根据List集合中的一个字段对集合进行去重

利用HashSet 创建了一个HashSet用于存储唯一的字段值&#xff0c;并创建了一个新的列表uniqueList用于存储去重后的对象。遍历原始列表时&#xff0c;如果字段值未在HashSet中出现过&#xff0c;则将其添加到HashSet和uniqueList中。 List<Person> originalList new Ar…

VS2015项目中,MFC内存中调用DLL函数(VC6生成的示例DLL)

本例主要讲一下&#xff0c;用VC6如何生成DLL&#xff0c;用工具WinHex取得DLL全部内容&#xff0c;VC2015项目加载内存中的DLL函数&#xff0c;并调用函数的示例。 本例中的示例代码下载&#xff0c;点击可以下载 一、VC6.0生成示例DLL项目 1.新建项目&#xff0c;…

mysql中的is null和空字符串

相比于oracle&#xff0c;mysql中的is null 和空坑就没那么多&#xff0c;直接写就行。 不为空 and (username is not null and username !)注&#xff1a; 不为空中间用的是and。 为空 and (username is null or username !)注&#xff1a; 为空中间用的是or。

java应用运行在docker,并且其他组件也在docker

docker启动redis容器 # create redis docker run -d --name redis-container -p 6379:6379 redis:latest创建java 应用 dockerfile FROM openjdk:17##Pre-create related directories RUN mkdir -p /data/etax/ms-app WORKDIR /data/etax/ms-appEXPOSE 10133 COPY ./target…

SQL Server Express 自动备份方案

文章目录 SQL Server Express 自动备份方案前言方案原理SQL Server Express 自动备份1.创建存储过程2.设定计划任务3.结果检查sqlcmd 参数说明SQL Server Express 自动备份方案 前言 对于许多小型企业和个人开发者来说,SQL Server Express是一个经济实惠且强大的数据库解决方…

Spring Framework中的Bean生命周期

目录 一.Bean生命周期的简介 1.基本概念 2.Spring生命周期的几大阶段 3.注意点及小结 4.生活案例 5.Spring容器管理JavaBean的初始化过程 二. Bean的单例选择与多例选择 1.单例选择与多例选择的优缺点 1.1单例模式的优点&#xff1a; 1.2单例模式的缺点&#xff1a; 1…

JDK 8 升级 JDK 17 全流程教学指南

JDK 8 升级 JDK 17 首先已有项目升级是会经历一个较长的调试和自测过程来保证允许和兼容没有问题。先说几个重要的点 遇到问题别放弃仔细阅读报错&#xff0c;精确到每个单词每一行&#xff0c;不是自己项目的代码也要点进去看看源码到底是为啥报错明确你项目引入的包&#x…

第三届“赣政杯”网络安全大赛 | 赛宁筑牢安全应急防线

​​为持续强化江西省党政机关网络安全风险防范意识&#xff0c;提高信息化岗位从业人员基础技能&#xff0c;提升应对网络安全风险处置能力。由江西省委网信办、江西省发展改革委主办&#xff0c;江西省大数据中心、国家计算机网络与信息安全管理中心江西分中心承办&#xff0…

Qt扫盲-QTableView理论总结

QTableView理论总结 一、概述二、导航三、视觉外观四、坐标系统五、示例代码1. 性别代理2. 学生信息模型3. 对应视图 一、概述 QTableView实现了一个tableview 来显示model 中的元素。这个类用于提供之前由QTable类提供的标准表&#xff0c;但这个是使用Qt的model/view架构提供…

MySQL 存储过程

create procedure 存储过程名 &#xff08;in | out | INPUT 参数名 参数类型&#xff0c;。。。&#xff09; 【characteristics 。。。】begin存储过程体end存储过程的参数类型 IN 、OUT、INPUT 都可以在一个存储过程带多个 没有参数&#xff08;无参数无返回&#xff09;仅…

ProGuard + SpringBoot3 + JDK17

1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.…

android平台的语音聊天助手源码

目录 1 android平台的语音聊天助手源码 1.1 Setting 1.1.1 onChildClick 1.1.2 if (groupPosition == 0) {// 语音识别设置 android平台的语音聊天助手源码 Setting onChildClick

神经网络基础-神经网络补充概念-11-向量化逻辑回归

概念 通过使用 NumPy 数组来进行矩阵运算&#xff0c;将循环操作向量化。 向量化的好处在于它可以同时处理多个样本&#xff0c;从而加速计算过程。在实际应用中&#xff0c;尤其是处理大规模数据集时&#xff0c;向量化可以显著提高代码的效率。 代码实现-以逻辑回归为例 i…