java readable_Java-Readable
1 import java.nio.*;
2 import java.util.*;
3 import static net.mindview.util.Print.*;
4
5 public class RandomWords implements Readable {
6 private int readCount = 1;//read()执行次数
7 private int loopCount = 1;
8 public RandomWords() { }
9 public int read(CharBuffer cb) {
10
11 if (loopCount == 1){print("进入read执行第" + readCount + "次");readCount++;cb.append("aa bb cc ");loopCount++;return 1;}//仅仅在第一次和第六次给CharBuffer添加3个数据
12 if (loopCount == 2){print("进入read执行第" + readCount + "次");readCount++;loopCount++;return 1;}//其他的时候返回1,但是并不往Buffer中存放数据,来骗被调用者hasNext(),来观察出现了什么现象
13 if (loopCount == 3){print("进入read执行第" + readCount + "次");readCount++;loopCount++;return 1;}
14 if (loopCount == 4){print("进入read执行第" + readCount + "次");readCount++;loopCount++;return 1;}
15 if (loopCount == 5){print("进入read执行第" + readCount + "次");readCount++;loopCount++;return 1;}
16
17 if (loopCount == 6){print("进入read执行第" + readCount + "次");readCount++;cb.append("oo pp qq ");loopCount++;return 1;}
18 if (loopCount == 7){print("进入read执行第" + readCount + "次");readCount++;loopCount++;return 1;}
19 if (loopCount == 8){print("进入read执行第" + readCount + "次");readCount++;loopCount++;return 1;}
20 if (loopCount == 9){print("进入read执行第" + readCount + "次");readCount++;loopCount++;return 1;}
21 if (loopCount == 10){print("进入read执行第" + readCount + "次");readCount++;return -1;}
22 return 1;
23 }
24
25 public static void main(String[] args) {
26 int a = 1;//外层循环的次数
27
28 print("1");
29 Scanner s = new Scanner(new RandomWords())
30 print("2");
31
32
33 while(s.hasNext()){//这个hasNext()方法会调用read()方法的
34 print("第" + a + "次执行外层循环");
35 a ++;
36 System.out.println("从cb中读出 " + s.next());
37 }
38 }
39 }
上面的执行结果是:
1
2
进入read执行第1次
第1次执行外层循环
从cb中读出 aa
第2次执行外层循环
从cb中读出 bb
第3次执行外层循环
从cb中读出 cc
进入read执行第2次
进入read执行第3次
进入read执行第4次
进入read执行第5次
进入read执行第6次
第4次执行外层循环
从cb中读出 oo
第5次执行外层循环
从cb中读出 pp
第6次执行外层循环
从cb中读出 qq
进入read执行第7次
进入read执行第8次
进入read执行第9次
进入read执行第10次
可以看到,在执行到while(s.hasNext())时,要判断是否输入了内容,此时要进行读取操作,调用read()函数,执行 loopCount == 1 得到了返回值为1,因此程序判断有输入内容,同时 cb.append("aa bb cc ")已经执行,由于s.hasNext()是以空格为间断符
第一次只能读aa,后面的在cd外排序等待,读完之后执行print(),然后由于一次性给过来的是aa bb cc。因此接着读取bb。最后cc。
继续执行 loopCount == 2 此时返回值仍为1,但是s.hasNext()并未检测到有具体内容要读取进来,因此继续调用read()函数,直到s.hasNext()检测到返回值为-1为止,或者有读取内容。
标签:readCount,Java,loopCount,read,Readable,++,print,执行
来源: https://www.cnblogs.com/Qiav/p/11965815.html
java readable_Java-Readable相关推荐
- java 类加载过程
1. 使用命令行查看类加载过程,在eclipse测试类的run configuration中配置-verbose:class或者-verbose,如下图所示: 运行结果如下所示: [Opened D: ...
- java加载并运行虚拟机_《深入理解Java虚拟机》- Java虚拟机是如何加载Java类的?...
Java虚拟机是如何加载Java类的? 这个问题也就是面试常问到的Java类加载机制.在年初面试百战之后,菜鸟喜鹊也是能把这流程倒背如流啊!但是,也只是字面上的背诵,根本就是像上学时背书考试一样. ...
- 【Java】浅谈JavaDoc文档注释
JavaDoc文档注释 文档注释 JavaDoc标记 文档注释示例 基于Eclipse IDE的JavaDoc实战 后记 文档注释 我们知道,Java有三种注释: 单行注释:// 多行注释:/* */ ...
- 读书笔记--Java核心技术--高级特征
第一章--流与文件---------------------------------------------- 流 读写字节 java.io.InputStream 1.0 abstractint r ...
- JAVA高级---(2)15分钟入门JVM底层原理
建议阅读时长 15min 文章中知识点,有部分来源自java官网以及比较优秀的博主,以及深入理解java虚拟机的书和java虚拟机规范,在此表示感谢,对于其文章中不明确的知识点进行深入的分析和编写. ...
- Fastjson 1.2.68版本反序列化漏洞分析篇
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | ale_wong@云影实验室 来源 | htt ...
- JVM -verbose参数详解(转)
转自:http://www.javaranger.com/archives/367 java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息. 1.java -verb ...
- jvm对类的加载、链接、初始化
package com.jmdf.redis.project;/*** 对于静态字段,只有直接定义了该字段的类才会被初始化* 当一个子类初始化时要求其全部父类已经初始化完毕.* -XX:+TraceC ...
- Javaweb安全——Fastjson反序列化利用
Fastjson前置知识 反序列化函数 Object obj = JSON.parse(); //解析为JSONObject类型或者JSONArray类型 Object obj = JSON.pars ...
- 渗透测试-Fastjson各版本漏洞分析(下)
- fastjson 1.2.45 - 1.2.44中对[进行了判断,我们用1.2.43的POC,然后下个JSONException的异常断点,看看是怎么判断的 运行后,在com.alibaba.fa ...
最新文章
- mysql中文乱码的一点理解
- 利用php实现删除,利用PHP实现删除目录及目录下所有文件 源代码
- 写在创业的路上:如何从无到有的打造一个产品
- Uva11729 Commando War
- SQL Server:统计数据库中每张表的大小
- [转]基于overlayfs的硬盘资源隔离工具troot
- [导入]流氓软件案落定 “很棒小秘书”终审败诉
- emply() php,thinkphp3.2.3 分页代码分享
- AI CycleGAN
- Lotus notes 通讯录的导入导出
- camvid数据集使用方法_github资源推荐:目标姿态检测数据集与渲染方法
- 华为HG255d WEB刷OpenWrt
- 一:Proficloud - EMMA能源管理+EMpro智能电表
- rtt segger 低功耗模式_Segger RTT使用注意事项
- 计算机大类专业学习c语言之重要性
- 02-Ceph 集群部署
- 手机虚拟摄像头_用手机当摄像头开直播 无他相机推荐
- 一个球绳命最后的高度哈哈
- 〔王鹰教程五〕和弦的分类记忆法
- 湖北二本大学计算机排名,2017年二本大学排名及分数线(湖北省)
热门文章
- 1124 Raffle for Weibo Followers(map)
- 工业农业消防自动检测及报警云方案
- ps扁平图之 油画(莫奈)中的色彩与几何
- 开源H5棋牌 cocos creator微信棋牌小游戏 幼麟棋牌客户端分析笔记
- 从战略到执行:业务领先模型 BLM 战略篇「战略意图」
- 对于Android11无法访问Android/data的解决方案 还在为你的大姐姐找不到而担心吗?还在为你的学习资料找不到而发愁吗?2021-03-11
- Flume使用Spooling Directory Source采集文件夹数据到hdfs
- 怎样快速将PDF文件旋转
- 提取OTU表格中分类学名称
- 【2011集训队出题】跳跳棋