读入 排序前出师表.txt 文本信息,进行排序输出为 排序后出师表.txt 文件

排序前出师表.txt

3.侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必得裨补阙漏,有所广益。

8.愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨承善道,蔡纳雅言,深追先帝遗诏,臣不胜受恩感激。

4.将军向宠,性行淑均,晓畅军事,试用之于昔日,先帝称之日能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。

2.宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不言偏私,使内外异法也。

1.先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引嗡失义,以塞忠谏之路也。

9.今当远离,临表涕零,不知所言。

6.臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

7.先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐付托不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。

5.亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。



排序后出师表.txt

1.先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引嗡失义,以塞忠谏之路也。

2.宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不言偏私,使内外异法也。

3.侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必得裨补阙漏,有所广益。

4.将军向宠,性行淑均,晓畅军事,试用之于昔日,先帝称之日能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。

5.亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。

6.臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

7.先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐付托不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。

8.愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨承善道,蔡纳雅言,深追先帝遗诏,臣不胜受恩感激。

9.今当远离,临表涕零,不知所言。



小提示:如果排序后出现序号正确但是后面乱码的情况,那是因为字符集冲突的原因,一般 windows 的系统默认的字符集都是 GBK ,但 IDEA 或 Eclipse 有时可能不是使用的 GBK ,极可能是其他的字符集,比如: UTF-8 ,因此这种情况是正常的,如果做到这一步了,那这一部分的小练习也算是完成了的。

代码:

/**@author  MingxuDeng*@version 20202020年10月30日字符缓冲输入流&Map 集合的简单综合应用:文本排序读入 排序前出师表.txt 文本信息,进行排序输出为 排序后出师表.txt 文件即:对文本的内容进行排序按照(1,2,3,...)顺序进行排序分析:1.创建一个 HashMap 集合对象:key 可以存储每行文本的序号(1,2,3,...);value:存储每行的文本;HashMap特性:对key进行排序后存储。2.读:创建字符缓冲输入流对象,构造方法中绑定字符输入流;3.写:创建字符缓冲输出流对象,构造方法中绑定字符输出流;4.使用字符缓冲输入流中的方法 readLine ,逐行读取文本;5.对读取到的文本进行切割,获取行中的序号和文本内容;6.把切割好的序号和文本的内容存储到 HashMap 集合中(Map 集合中的key序号是有序的,会自动排序 1,2,3,4,...);7.遍历 HashMap 集合,获取每一个键值对;8.把每一个键值对,拼接为一个文本行,(注意换行符:这里可以使用方法newLine);9.把拼接好的文本,使用字符缓冲输出流中的方法 write,写入到文件(排序后出师表.txt)中;10.释放资源;
*/
package 缓冲流;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;public class Demo_sort {public static void main(String[] args) throws IOException {//1.创建一个 HashMap 集合对象:key 可以存储每行文本的序号(1,2,3,...);value:存储每行的文本;HashMap<String,String> map = new HashMap<>();//2.读:创建字符缓冲输入流对象,构造方法中绑定字符输入流;                    这里的路径可根据文本在电脑实际对应路径来进行配置BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\Administrator\\Desktop\\排序前出师表.txt"));//3.写:创建字符缓冲输出流对象,构造方法中绑定字符输出流;                 这里的路径可根据文本在电脑实际对应路径来进行配置BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Users\\Administrator\\Desktop\\排序后的出师表.txt"));//4.使用字符缓冲输入流中的方法 readLine ,逐行读取文本;String line;while((line=br.readLine())!=null) {//5.对读取到的文本进行切割,获取行中的序号和文本内容;String[] arr=new String[2];arr = line.split("\\.");// 以"."为界进行切割分离//6.把切割好的序号和文本的内容存储到 HashMap 集合中(Map 集合中的key序号是有序的,会自动排序 1,2,3,4,...);//方法一:for (int i = 0; i < arr.length-1; i++) {map.put(arr[i], arr[i+1]);}//6.把切割好的序号和文本的内容存储到 HashMap 集合中(Map 集合中的key序号是有序的,会自动排序 1,2,3,4,...);//方法二://map.put(arr[0], arr[1]);}//7.遍历 HashMap 集合,获取每一个键值对;for (String key : map.keySet()) {String value = map.get(key);//8.把每一个键值对,拼接为一个文本行,(注意换行符:这里可以使用方法newLine);line = key+"."+value;//9.把拼接好的文本,使用字符缓冲输出流中的方法 write,写入到文件(排序后出师表.txt)中;bw.write(line);bw.newLine();//写换行}//10.释放资源;bw.close();br.close();}
}

部分代码参考(点击进入)

java 入门专题 字符缓冲输入流HashMap 集合的简单综合应用:文本排序相关推荐

  1. 字符缓冲输入流,高效读取整行数据

    import java.io.BufferedReader; import java.io.FileReader;/* 字符缓冲输入流,高效读取整行数据*/ public class Writer { ...

  2. 字符缓冲输入流 BufferedReader java

    字符缓冲输入流 BufferedReader java 构造方法 BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流. BufferedReader(R ...

  3. Java语言之字符缓冲流

    一,字符缓冲输出流BufferedWriter java.io.BufferedWriter extends Writer. BufferedWriter:字符缓冲输出流,提高字符写入效率. 继承父类 ...

  4. BufferedReader_字符缓冲输入流

    package com.learn.demo01.BufferedStream;import java.io.BufferedReader; import java.io.FileReader; im ...

  5. Java中面向字符的输入流

    字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用 ...

  6. java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件

    字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 1 private static void write() throws ...

  7. java入门基础二 15-18 之三大集合

    Day15集合值框架 数组:部分集合的底层是用数组写的: 基本数据类型存储的是值, 引用数据类型 中存储的不是对象,是对象的地址值. 数组与集合的区别: 1. 数组 可以存储基本数据类型,也可以存储引 ...

  8. Java入门篇(一)——如何编写一个简单的Java程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

  9. java入门篇(一)如何编写一个简单的程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

最新文章

  1. Gazebo构建小车模型并通过ROS控制
  2. hibernate多个主键
  3. 计算机丢失wininet,win7系统启动程序提示因为计算机中丢失wininet.dll的解决方法...
  4. C语言DCI(OCI)方式连接DM数据库
  5. SplitContainer如何实现左导航,右显示与导航相关内容
  6. mysql之为表添加一个字段并设定默认值
  7. 自学python需要安装什么-Python学习需要安装的工具
  8. BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等
  9. 「mac软件教程」:在 Mac 上免费减小 PDF 文件大小
  10. 替代top的系统监控工具glances
  11. 算法图解第四章笔记与习题(快速排序)
  12. 北京2018年通信工程师考试报名通知
  13. 中文版 Ubuntu主目录里的桌面等中文目录名称改成英文
  14. bzoj2144 跳跳棋
  15. 桂林银行携手华为,做“好山水”里的“好银行”
  16. List和Map集合遍历的3种方式
  17. Java的socket连接以及string字符串长度过长解决
  18. 【基因】原核生物基因调控机制,操纵子学说整理——2015年7月17日
  19. 瑞芯微RK3399主板开发,RK3399芯片设计参数分析
  20. 大数据算法—大数据算法概述

热门文章

  1. 开发者的瑞士军刀Eolink,目测要火
  2. dxp中发光二极管在哪找_如何设计发光二极管的元件符号?
  3. 收藏这些网站,做设计和PPT不再为找素材发愁
  4. 锂电充/放电全集成控制芯片
  5. 【Maven】org.codehaus.plexus.component.repository.exception.ComponentLookupException
  6. 源火星球——青龙 详细教程
  7. vue学习:基于本地应用制作的记事本
  8. 八、十六进制数转换到十进制数
  9. 网页下拉框智能诱导输入
  10. Linux下smba服务端的搭建和客户端的使用