txt内容

Line1:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine2:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine3:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine4:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine5:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine6:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine7:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine8:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine9:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine10:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine11:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine12:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine13:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine14:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine15:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine16:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine17:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine18:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine19:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine20:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine21:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine22:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine23:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine24:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine25:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine26:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine27:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine28:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine29:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine30:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine31:
!@#$%^&*()-=[]\;'./,ABCD1234abcdLine32:
!@#$%^&*()-=[]\;'./,ABCD1234abcd

缓冲字符输入流

public class BufferedCharDemo1 {public static void main(String[] args) {try (Reader fr = new FileReader("CertExam\\src\\dataTest1.txt");BufferedReader bis = new BufferedReader(fr)) {//            System.out.println(bis.readLine());
//            System.out.println(bis.readLine());
//            System.out.println(bis.readLine());
//            System.out.println(bis.readLine());
//            System.out.println("I read empty line also");char[] chars = new char[1024];//read 1024 chars per timeint num;while ((num = bis.read(chars)) != -1){String str = new String(chars,0,num);System.out.println(str);}
//            String lineContent;
//            while ((lineContent = bis.readLine()) != null){//                System.out.println(lineContent);
//                /** 这里不要在括号里写bis.readLine()了,就用变量lineContent*/
//            }} catch (Exception e) {e.printStackTrace();}}
}

缓冲字符输出流

public class BufferedWriterDemo2 {public static void main(String[] args) {try (Writer wr = new FileWriter("CertExam\\src\\dataTest3.txt");BufferedWriter bwr = new BufferedWriter(wr)){bwr.write('9');bwr.write('A');bwr.write('@');bwr.write(98);//字符编号不需要单引号bwr.write("你好java");bwr.write("你好java");bwr.newLine();/**bwr有一个newline()换行,不用像纯Writer那样写wr.write("\r\n")了*/bwr.write("你好java");} catch (IOException e) {e.printStackTrace();}}
}

杜甫诗案例
txt内容

08.布衾多年冷似铁⑽,娇儿恶卧踏里裂⑾。
03.八月秋高风怒号⑴,卷我屋上三重茅⑵。
01.茅屋为秋风所破歌
10.自经丧乱少睡眠⒁,长夜沾湿何由彻⒂!
05.南村群童欺我老无力,忍能对面为盗贼⑸。
12.呜呼⒅!何时眼前突兀见此屋⒆,吾庐独破受冻死亦足⒇!
07.俄顷风定云墨色⑻,秋天漠漠向昏黑⑼。
06.公然抱茅入竹去⑹,唇焦口燥呼不得⑺,归来倚杖自叹息。
02.
04.茅飞渡江洒江郊,高者挂罥长林梢⑶,下者飘转沉塘坳⑷。
09.床头屋漏无干处⑿,雨脚如麻未断绝⒀。
11.安得广厦千万间⒃,大庇天下寒士俱欢颜⒄,风雨不动安如山。

以上文本用缓冲字符流排序后控制台输出打印代码如下

public class BufferCharDemo3 {public static void main(String[] args) {try (Reader fr = new FileReader("CertExam\\src\\dufu");BufferedReader br = new BufferedReader(fr)) {List<String> article = new ArrayList<>();String lineContent;while ((lineContent = br.readLine()) != null){article.add(lineContent);}article.sort(String::compareTo);
//            Collections.sort(article);/** 用这一句和上一句,都是默认0到9排序,效果一样,10以上就排错,要在编号前面加0*/System.out.println(article);} catch (Exception e) {e.printStackTrace();}}
}

输出到新文本文件代码如下

public class BufferCharDemo4 {public static void main(String[] args) {try (Reader fr = new FileReader("CertExam\\src\\dufu");BufferedReader br = new BufferedReader(fr);Writer wr = new FileWriter("CertExam\\src\\dufu2");BufferedWriter bw = new BufferedWriter(wr)) {List<String> article = new ArrayList<>();String lineContent;while ((lineContent = br.readLine()) != null){article.add(lineContent);}article.sort(String::compareTo);for (String s : article) {bw.write(s+"\r\n");}} catch (Exception e) {e.printStackTrace();}}
}```

改进后的txt文本

八.布衾多年冷似铁⑽,娇儿恶卧踏里裂⑾。
三.八月秋高风怒号⑴,卷我屋上三重茅⑵。
一.茅屋为秋风所破歌
十.自经丧乱少睡眠⒁,长夜沾湿何由彻⒂!
五.南村群童欺我老无力,忍能对面为盗贼⑸。
十二.呜呼⒅!何时眼前突兀见此屋⒆,吾庐独破受冻死亦足⒇!
七.俄顷风定云墨色⑻,秋天漠漠向昏黑⑼。
六.公然抱茅入竹去⑹,唇焦口燥呼不得⑺,归来倚杖自叹息。
二.
四.茅飞渡江洒江郊,高者挂罥长林梢⑶,下者飘转沉塘坳⑷。
九.床头屋漏无干处⑿,雨脚如麻未断绝⒀。
十一.安得广厦千万间⒃,大庇天下寒士俱欢颜⒄,风雨不动安如山。

缓冲流输出到新文件代码如下

public class BufferCharDemo5 {public static void main(String[] args) {try (Reader fr = new FileReader("CertExam\\src\\dufu1");BufferedReader br = new BufferedReader(fr);Writer wr = new FileWriter("CertExam\\src\\dufu3");BufferedWriter bw = new BufferedWriter(wr);) {List<String> article = new ArrayList<>();List<String> ordered = new ArrayList<>();/**批量添加要用Collections.addAll方法*/Collections.addAll(ordered,"一","二","三","四","五","六","七","八","九","十","十一","十二");String lineContent;while ((lineContent = br.readLine()) != null){article.add(lineContent);}/*** 这句lambda意思就是拿o1,o2的开头部分决定它们的顺序* o1,o2的开头部顺序由它们在order集合里的顺序决定* 下面这句也可写作,Collections.sort(article,new Comparator)* 然后又被精简成了最后极其精简的一句,然后我又精简成了split的一句*/
//            article.sort((o1, o2) ->
//                    ordered.indexOf(o1.substring(0,o1.indexOf("."))) - ordered.indexOf(o2.substring(0,o2.indexOf(".")))
//                    );
//            article.sort(Comparator.comparingInt(o -> ordered.indexOf(o.substring(0, o.indexOf(".")))));article.sort(Comparator.comparingInt(o -> ordered.indexOf(o.split("\\.",2)[0])));for (String s : article) {bw.write(s+"\r\n");String[] stArr = s.split("\\.",2);System.out.println(stArr[0]);/**实践证明,用split可以把分开点两边的文字,但split生成的是字符串Array,写入Lambda不会更好读*/}} catch (Exception e) {e.printStackTrace();}}
}

20220519_缓冲字符流相关推荐

  1. .dat文件写入byte类型数组_文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流...

    一.实操名称: 描述如下流的基本作用:文件字节流.文件字符流.缓冲字节流.缓冲字符流字节数组流.数据流.转换流.对象流二.描述1.文件字节流:包括:FileInputStream,FileOutput ...

  2. 字节数组与字节流、缓冲字节流、字符流、缓冲字符流、对象流

    一.字节流 1.读写字节数组 public void copy1() throws IOException {InputStream in=new FileInputStream("a.tx ...

  3. java字符流的父类_Java基于代码实战的字符流父类、字符转换流、缓冲字符流、过滤流...

    1. Java输入输出(I/O)流的知识回顾: 补充:因为这篇文章是基于上一篇的延续,因此将上一篇进行简单的回顾,以便理解本节内容. 1)输入输出(I/O)流分类:共分为字节型输入输出流和字符型输入输 ...

  4. 使用缓冲字符流进行文档排序

    练习:文本排序:请将文本信息恢复顺序. 文档1排序好-->文本档2 文档1: 3.侍中.侍郎郭攸之.费祎.董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下.愚以为宫中之事,事无大小,悉以咨之,然 ...

  5. java byte char io流_吃透Java IO:字节流、字符流、缓冲流

    前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...

  6. Java基础---认识IO流---字节流、字符流---缓冲流---转换流

    一.认识IO流 I/O就是用于设备之间进行数据交互的对象所属的类型 IO流的体系结构:根据分类,有四种流对象类型 字节流:可以直接操作字节信息的流对象 字节输入流:InputStream 字节输出流: ...

  7. 系统学习JAVA第十七天(字节流、字符流、缓冲的字节流、缓冲的字符流、将字节流转换为缓冲的字符流、面向对象——>字节流转成对象)

    系统学习JAVA第十七天 第一阶段在2021.2.1结束了! 一.数据传输 IO输入和输出,硬盘之间的数据交换 1.文件读写流程 ①创建文件的容器 ②判断方向 合适的类 创建和文件之间的通道 ③ 调用 ...

  8. 吃透Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的. 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握得很好,可以立即关闭文章.反之,你可以在后面得文章中寻找答案. ...

  9. 【Java网络编程与IO流】Java中IO流分为几种?字符流、字节流、缓冲流、输入流、输出流、节点流、处理流

    Java网络编程与IO流目录: [Java网络编程与IO流]Java中IO流分为几种?字符流.字节流.缓冲流.输入流.输出流.节点流.处理流 [Java网络编程与IO流]计算机网络常见面试题高频核心考 ...

最新文章

  1. JavaScript使用ACTIVEX控件引起崩溃问题的解决
  2. Python---已知Person类,继承Person类生成Teacher类(增加参数:科目)和Student类(增加参数:专业)。
  3. 为ASP.NET MVC扩展异步Action功能(下)
  4. P1080 国王游戏(贪心+高精度乘除及大数比较)
  5. linux需要检测的系统资源不足,细说Linux 系统优化
  6. 华为云发布新slogan,新年伊始加速奔跑
  7. python基本类型
  8. UML之一综合设计例题
  9. javascript 数组合并与去重
  10. 常见排序算法的原理与实现(js)
  11. “Scrum 敏捷开发都是骗人的!”
  12. Qt 方式问题_vortex_新浪博客
  13. 设计模式---解释器模式(C++实现)
  14. 《EMCAScript6入门》读书笔记——16.Generator函数的语法
  15. Android Architecture Blueprints----安卓架构详细分析
  16. 拓端tecdat|R语言中的Nelson-Siegel模型在汇率预测的应用
  17. 李雅普诺夫稳定性、李雅普诺夫第一法、李雅普诺夫第二法及李雅普诺夫函数
  18. Python网络爬虫:正则表达式
  19. poco http使用
  20. §1.1自然数 上•序数理论

热门文章

  1. 简述UITextField的属性和用法
  2. 电销机器人价格_电话电销机器人价格如何?会很贵吗?
  3. 菏泽话务员机器人方案_电话机器人真能抵得上五个电销话务员?
  4. 电脑上必备软件,值得收藏
  5. 基于大数据的智能网络分析
  6. WMS仓库管理系统常见的问题以及改善方案
  7. 51单片机控制继电器的设计及源代码
  8. Java模拟操作系统实验一:四种进程调度算法实现(FCFS,SJF,RR,HRN)
  9. 判断输入字符是否是字母c语言,用C语言编程:判断输入的一个字符是否为英文字母...
  10. JCS: An Explainable COVID-19 Diagnosis System by Joint Classification and Segmentation备忘录