【无标题】java day14

1、 基础案例

1. 训练案例1

1.1. 训练描述:【InputStreamReader OutputStreamWriter】

1、 需求说明:以UTF-8编码的格式写出 “你好”到文件中, 并将数据正确的读取出来打印在控制台

1.2. 操作步骤描述

1. 创建OutputStreamWriter关联文件, 并在构造方法中指定编码表

2. 调用writer方法写出字符串

3. 创建InputStreamReader关联文件, 并在构造方法中指定码表进行读取

4. 调用read方法读取数据, 打印在控制台 

 

2. 训练案例2

2.1. 训练描述:【BufferedReader、BufferedWriter】

一、需求说明:字符缓冲区流的特殊功能复制Java文件

2.2. 操作步骤描述

1. 创建BufferedReader输入流对象关联源文件

2. 创建BufferedWriter输出流对象关联目标文件

3. 调用readLine方法不断的读取,只要不等于null 说明没有读取完毕

4. 调用writer方法直接写出字符串,但是要加上newLine方法手动换行

5. 关闭流释放资源

3. 训练案例3

3.1. 训练描述【BufferedReader BufferedWriter】

1、 需求说明:

a) 将集合中Student对象的信息写入当前项目下的stuInfo.txt当中

b) 再读取stuInfo.txt的内容到集合中,遍历集合打印数据

2、 补充说明:

a) 写出信息的格式: it001,张曼玉,35,北京

b) 输出信息的格式: it001,张曼玉,35,北京

3.2. 操作步骤描述

分析:

1. 创建Student类,用于封装数据

2. 创建集合对象,将学生对象添加到集合中

3. 创建输出流对象关联stuInfo.txt文件

4. 遍历集合对象获取到每一个Student, 再用StringBuilder拼接成指定的格式并写出

5. 关闭输出流对象

6. 创建BufferedReader输入流对象关联stuInfo.txt, 因为有读取一行的方法

7. 创建集合对象用于存储读取到的Student(也可以将原集合清空)

8. 将读取到的每一行数据通过split方法切割,再将切割后的信息封装成Student对象

9. 将学生对象添加到集合中

10. 关闭输入流对象

11. 遍历集合并打印

2、 扩展案例

1. 训练案例1

1.1. 训练描述:

1、 分析以下需求,并用代码实现:

实现一个验证码小程序,要求如下:

​1. 在项目根目录下新建一个文件:data.txt,键盘录入3个字符串验证码,并存入data.txt中,要求一个验证码占一行;

​​2. 键盘录入一个需要被校验的验证码,如果输入的验证码在data.txt中存在:在控制台提示验证成功,如果不存在控制台提示验证失败

1.2. 操作步骤描述

1. 键盘录入三个验证码用字符串接收

2. 创建输出流对象关联data.txt

3. 将三个验证码写入data.txt当中, 关闭输出流

4. 键盘录入一个需要校验的验证码并用字符串接收

5. 创建输入流对象关联data.txt

6. 创建集合对象

7. 读取data.txt 将读取到的数据存储到集合中

8. 使用集合调用contains方法, 将需要校验的字符串传入

9. 根据返回的结果, 打印是否存在

2. 训练案例2

2.1. 训练描述:

需求分析:1.项目根目录下建立文件:user.txt,文件中存放用户名和登录密码,格式:用户名,密码,如:aaa,123;

​​  2. user.txt文件中初始存放的用户信息有如下:

​​​jack,123

​​​rose,123

​​​tom,123

​​  3.要求完成如下功能:

​ ​​程序运行时:控制台提示用户输入注册的用户名和密码;

​   ​​验证键盘录入的用户名跟user.txt中已注册的用户名是否重复:

​   ​​​是:控制台提示:用户名已存在

​   ​​​否:将键盘录入的用户名及密码写入user.txt文件,并在控制台提示:注册成功;

2.2. 作步骤描述

1. 键盘录入用户名和密码并用两个String变量接受

2. 创建输入流对象关联user.txt

3. 创建集合对象, 用于存储读取到的数据

4. 定义boolean类型的标记flag, 假设键盘录入的用户名不存在, 默认为false

5. 遍历集合获取到每一个数据(数据是用户名,密码的字符串, 思路不要乱)

a) 根据逗号切割当前字符串, 获取字符串数组中0索引的用户名

b) 拿着键盘录入的用户名和切割后的用户名逐个对比, 相同的话将flag改为true

6. 判断flag

a) true : 提示已经存在

b) false: 创建输出流对象关联user.txt, 并将键盘录入的用户名和密码拼接上逗号写出.(注意尾部追加)

3. 训练案例3

3.1. 训练描述:

1、 分析以下需求,并用代码实现

需求 : 项目根路径下有text.txt文件,内容如下

我爱黑马

123456

 

利用IO流的知识读取text.txt文件的内容反转后写入text.txt文件中

654321

马黑爱我

3.2. 操作步骤描述

1. 创建集合对象用于存储读取到的每一行数据

2. 创建BufferedReader关联text.txt文件

3. 将读取到的每一行数据存储到集合中

4. 关闭输入流

5. 遍历集合获取到每一个数据(每一行字符串)

6. 通过StringBuilder将当前字符串翻转

7. 将转换后的字符串, 设置回集合的当前位置(提示 集合中的set方法)

8. 创建输出流对象关联text.txt

9. 倒着遍历集合(为了达到行翻转的效果)

10. 将数据写入文件, 手动换行

11. 关闭输出流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值