Day_14【IO流】扩展案例3_对文本文件中的字符串内容进行反转
分析以下需求,并用代码实现
项目根路径下有text.txt文件,内容如下
我爱黑马
123456 利用IO流的知识读取text.txt文件的内容反转后写入text.txt文件中
654321
马黑爱我
思路
1.创建集合对象用于存储读取到的每一行数据
2.创建BufferedReader关联text.txt文件
3.将读取到的每一行数据存储到集合中
4.关闭输入流
5.遍历集合获取到每一个数据(每一行字符串)
6.通过StringBuilder将当前字符串翻转
7.将转换后的字符串, 设置回集合的当前位置(提示 集合中的set方法)
8.创建输出流对象关联text.txt
9.倒着遍历集合(为了达到行翻转的效果)
10.将数据写入文件, 手动换行
11.关闭输出流
代码
package com.itheima3;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class Test3 {
public static void main(String[] args) throws IOException {
//创建集合对象用于存储读取到的每一行数据
ArrayList<String> array = new ArrayList<>();
//创建BufferedReader关联text.txt文件
BufferedReader br = new BufferedReader(new FileReader("text.txt"));
//将读取到的每一行数据存储到集合中
String line;
while((line = br.readLine()) != null) {
array.add(line);
}
//释放资源
br.close();
//遍历集合获取到每一个数据(每一行字符串)
for(int i = 0;i < array.size();i++){
String str = array.get(i);
//通过StringBuilder将当前字符串翻转
StringBuilder sb = new StringBuilder(str);
String strChange = sb.reverse().toString();
//将转换后的字符串, 设置回集合的当前位置(提示 集合中的set方法)
array.set(i, strChange);
}
//创建输出流对象关联text.txt
BufferedWriter bw = new BufferedWriter(new FileWriter("text.txt"));
//倒着遍历集合(为了达到行翻转的效果)
for(int i = array.size() - 1;i >= 0;i--) {
//将数据写入文件, 手动换行
bw.write(array.get(i));
bw.newLine();
bw.flush();
}
//释放资源
bw.close();
}
}
Day_14【IO流】扩展案例3_对文本文件中的字符串内容进行反转的更多相关文章
- Java基础知识强化之IO流笔记47:IO流练习之 随机获取文本文件中的姓名案例
1. 随机获取文本文件中的姓名案例 需求:我有一个文本文件中存储了几个名称,请大家写一个程序实现随机获取一个人的名字. 分析: A: 把文本文件中的数据存储到集 ...
- Java基础知识强化之IO流笔记52:IO流练习之 把一个文件中的字符串排序后再写入另一个文件案例
1. 把一个文件中的字符串排序后再写入另一个文件 已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl" 请编写程序读取数据内容,把数据排 ...
- IO流的练习5 —— 读取文件中的字符串,排序后写入另一文件中
需求:已知s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl” 请编写程序读取数据内容,把数据排序后写入ss.txt中. 分析: A:读取文件中的数据 B:把数 ...
- 329.-io流(字符-练习-复制文本文件二)
//每次读取的字节长度,一般都是1024的倍数 private static final int BUF_SIZE = 1024; public static void main(String[] a ...
- Day_08【面向对象】扩展案例3_使用多态的形式创建缉毒狗对象,调用缉毒方法和吼叫方法
分析以下需求,并用代码实现: 1.定义动物类: 行为: 吼叫:没有具体的吼叫行为 吃饭:没有具体的吃饭行为 2.定义缉毒接口 行为: 缉毒 3.定义缉毒狗:犬的一种 行为: 吼叫:汪汪叫 吃饭:狗啃骨 ...
- Day_09【常用API】扩展案例3_删除源字符串中的指定字符,并计算指定字符出现的次数
分析以下需求,并用代码实现 1.键盘录入一个源字符串由字符串变量scrStr接收 2.键盘录入一个要删除的字符串由字符串变量delStr接收 3.要求 删除该字scrStr符串中的所有delStr字符 ...
- Day_12【集合】扩展案例3_产生10个长度为10,不能重复,由数字0-9,小写字母和大写字母组成的字符串
分析以下需求,并用代码实现 1.产生10个1-20之间的随机数要求随机数不能重复 2.产生10个长度为10的不能重复的字符串(里面只能出现大写字母.小写字母.0-9的数字),并遍历打印输出 代码 pa ...
- Day_11【集合】扩展案例3_打印最高分的学员姓名、年龄、成绩,打印10个学生的总成绩和平均分,打印不及格的学员信息及数量
分析以下需求,并用代码实现 1.定义Student类 属性: 姓名:String name 年龄:int age 成绩:int score 行为: 空参构造方法 有参构造方法 set和get方法 to ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_3_Properties集合中的方法load
键值对文件,读取到集合中来使用 分隔符也可以用空格 读出来乱码
随机推荐
- 安装python3.8和python2.7
在同一台电脑上同时安装Python2和Python3 目前Python的两个版本Python2和Python3同时存在,且这两个版本同时在更新与维护. 到底是选择Python2还是选择Python3, ...
- 使用 PyQt5 实现图片查看器
一.前言 在学习 PyQt5 的过程中我会不断地做一些小的 Demo,用于让自己能够更好地理解和学习,这次要做的就是一个图片查看器,主要功能包括打开图片.拖动图片.放大和缩小图片. 最终实现的图片查看 ...
- Daily Scrum 1/18/2016
Yandong & Zhaoyang: Prepare bug bash slides for Beta release; Dong & Fuchen:Prepare demo for ...
- java文件上传、下载、图片预览
多文件保存到本地: @ResponseBody @RequestMapping(value = "/uploadApp",produces = { "applica ...
- 实例讲解Springboot以Template方式整合Redis及序列化问题
1 简介 之前讲过如何通过Docker安装Redis,也讲了Springboot以Repository方式整合Redis,建议阅读后再看本文效果更佳: (1) Docker安装Redis并介绍漂亮的可 ...
- 博客搬家 - 记第四次搬家(hugo建站推送到谷歌云存储)
写在前面,搬迁记录 记录我的博客这次搬家过程.我的博客之前经历过: wordpress github page Bitcron - 机制很不错(写完的博客自动保存到dropbox并发布,可惜搜索引擎的 ...
- search(7)- elastic4s-search-filter模式
现在我们可以开始探讨ES的核心环节:搜索search了.search又分filter,query两种模式.filter模式即筛选模式:将符合筛选条件的记录作为结果找出来.query模式则分两个步骤:先 ...
- ES6让字符串String增加了哪些好玩的特性呢?
确实因为现在天气变热了,所以一天天的这么写我也很累.所以如果阅读的时候有什么错误还请大家指出来,不好意思.学习永无止境. OK,今天继续讲解ES6系列知识 学过上一节的解构赋值就知道,ES6确实给我们 ...
- MySQL主从数据库配置与原理
1.为什么要搭建主从数据库 (1)通过增加从库实现读写分离,提高系统负载能力 (2)将从库作为数据库备份库,实现数据热备份,为数据恢复提供机会 (3)根据业务将不同服务部署在不同机器同时又共享相同的数 ...
- 详解PHP中instanceof关键字及instanceof关键字有什么作用
来源:https://www.jb51.net/article/74409.htm PHP5的另一个新成员是instdnceof关键字.使用这个关键字可以确定一个对象是类的实例.类的子类,还是实现了某 ...