zoukankan      html  css  js  c++  java
  • 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);
                }
            }
    
        }
    }
  • 相关阅读:
    一文搞懂 ThreadLocal 原理
    听说用 Lombok 可以早点下班?
    原来 CPU 为程序性能优化做了这么多
    如何优雅地中止线程?
    线程数,射多少更舒适?
    Elasticsearch 之聚合分析入门
    Go语言之旅:基本类型
    Go语言之旅:包
    网络七层协议之数据链路层
    网络七层协议之物理层
  • 原文地址:https://www.cnblogs.com/xmcx1995/p/5768518.html
Copyright © 2011-2022 走看看