分析以下需求,并用代码实现
-
项目根路径下有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();
}
}
本文介绍了一个使用Java IO流实现文件内容反转的实际案例。通过对text.txt文件的读取,利用BufferedReader和ArrayList存储每一行数据,再通过StringBuilder进行字符串反转,最后通过BufferedWriter将反转后的数据写回原文件,实现了文件内容的完全反转。
885

被折叠的 条评论
为什么被折叠?



