Java-->将txt文件的所有行反转
--> 这里和上次代码不同,对同一文件进行操作,所以要用到一个第三方容器来存储数据
package com.dragon.java.filereverseline; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; /* * 将day19-笔记.txt中的所有行反转(第一行换到最后一行, 第二行换到倒数第二行) */ public class Test { public static void main(String[] args) { // 定义一个Map 存储行数的标号和每一行的数据 Map<Integer, String> map = new HashMap<>(); // 定义一个List 存储行数的标号 List<Integer> list = new ArrayList<>(); BufferedReader br = null; BufferedWriter bw = null; String filePath = "D:/workspace/08-13/src/com/dragon/java/addtotxt/days01.txt"; try { br = new BufferedReader(new FileReader(filePath)); int index = 0; while (true) { String lineString = br.readLine(); if (lineString == null) { break; } else { index++; list.add(index); map.put(index, lineString); } } // 这里显示是否反转 Collection<String> list1 = map.values(); for (String string : list1) { System.out.println(string); } // 通过list 的标号和Map 的key 对应存储之前容器中的数据 bw = new BufferedWriter(new FileWriter(filePath)); for (int i = list.size(); i > 0; i--) { System.out.println(i); bw.write(map.get(i)); bw.newLine(); } } catch (IOException e) { System.out.println(e); } finally { try { br.close(); bw.close(); } catch (IOException e) { System.out.println(e); } } } }