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
键值对文件,读取到集合中来使用 分隔符也可以用空格 读出来乱码
随机推荐
- Ant概念
Ant是基于Java的.可以跨平台的项目编译和生成工具.
- ATcoder--D - Summer Vacation
这个题目的题意有点难搞 题目连接: https://atcoder.jp/contests/abc137/tasks/abc137_d 题目大意:输入n和m 指的是一共有n个输入在m天前一共能赚到的钱 ...
- E - Aladdin and the Flying Carpet
It's said that Aladdin had to solve seven mysteries before getting the Magical Lamp which summons a ...
- vue2.x学习笔记(九)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12577948.html. 数组的更新检测 数组在javascript是一种特殊的对象,不是像普通的对象那样通过Ob ...
- 容易忽略的CSS3属性
flex布局模型 1. flex-direction: row | row-reverse | column | column-reverse flex-direction 属性决定主轴的方向(即项 ...
- python 异步Web框架sanic
我们继续学习Python异步编程,这里将介绍异步Web框架sanic,为什么不是tornado?从框架的易用性来说,Flask要远远比tornado简单,可惜flask不支持异步,而sanic就是类似 ...
- linux下文件的打包和压缩
文章来源:linux下文件的打包和压缩 目录 一.文件压缩的原理 二.linux常见的压缩指令 三.常用实例 1.tar命令 2.zip命令 3.gz命令 4.bz2命令 5.xz命令(必须分两步) ...
- PHP入门-1
基本数据类型: 1.整形 2.浮点型 3.字符串 4.布尔型 5.数组和对象 6.null 7.资源类型 8.伪类型 由于php是弱语言,所以他的数据类型不用自己来定义.定义一个数据类型,$name ...
- php--static用法
static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”. 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“ ...
- 解决laravel5.4视图不生效的坑
遇到这种坑,主要是路由的问题 1.看看是不是单词拼错了 Route::get('/posts/{post}','\App\Http\Controllers\PostController@show'); ...