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

发布了60 篇原创文章 · 获赞 0 · 访问量 1377

猜你喜欢

转载自blog.csdn.net/CODEROOKIE_RUN/article/details/103797373