博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
看看StringRead的内部
阅读量:6737 次
发布时间:2019-06-25

本文共 472 字,大约阅读时间需要 1 分钟。

hot3.png

先来看看这个类都和哪些类和接口有关系,看到StringReader主要是继承了抽象类Reader,我们知道Writer和Reader类是设计来处理基于字符串的输入和输出的,如下图

f10a0ddb6577789e58ef53ce41458ac7b53.jpg

该类有4个变量属性,一个字符串和其相应的特性长度,next,mark。

1329c452f4debc7377147728d46f305e9f5.jpg

该方法就一个构造函数,干了什么,一眼也明白了

e472ca60cf144fe73a64345839e31d71db6.jpg

这个方法就用来判断str字符串是否为空

d5556c07aea1b2f3b9e6b4ea39960ef462f.jpg

然后再看看read方法,这里加了一个锁,lock其实在Reader里面就是当前对象本身,然后next会递增,

fa2866a6f7c40a1b275686262378b3ba1e8.jpg

然后看看skip方法,这里会先判断如果next已经不小于length,就返回0,这里还会ns和字符串可移动长度比较,只是后面的是考虑负数的情况,退回的长度不能超过next,然后返回实际移动的距离。

204e858765d263284557cc685c0c840733f.jpg

ready方法就是看str数据是否已经不为空

5c64e0e86aacba3b4e31aa8b7cd7d24d775.jpg

还有close方法也很好理解,到这想想那些方法里的 ensureOpen还是有用的,毕竟并发清情况下执行了,没有这个方法就会错乱啦。

58836b3567d662968f8297219f2712ed82a.jpg

然后写一个demo

a068d8cdeb1b2fd451112767bfee67d0563.jpg

 

转载于:https://my.oschina.net/u/2277632/blog/3038881

你可能感兴趣的文章
智能家居市场发展困境
查看>>
中芯国际第三财季净利润1.136亿美元
查看>>
关于SaaS和数据恢复的6大谬误
查看>>
调查:95% 的 APT 攻击源起社交网站
查看>>
《Kali Linux渗透测试的艺术》—第2章2.3节安全测试方法论
查看>>
《版式设计——日本平面设计师参考手册》—第1章段落样式和字符样式的应用...
查看>>
《软件工艺师:专业、务实、自豪》一3.7.1 软件工艺峰会
查看>>
《善用佳软:高效能人士的软件应用之道》一2.4 项目管理:免费Project查看软件汇总...
查看>>
Galera 将死 — MySQL Group Replication 发布
查看>>
Mozilla 发现用于中间人攻击的证书
查看>>
Docker 中管理数据 【已翻译100%】
查看>>
《Unity 5.x游戏开发实战》一2.2 Unity中的C#脚本
查看>>
《OOD启思录》—第2章2.3节 类耦合与内聚
查看>>
【好书推荐】适合开发者学习DevOps的5本好书
查看>>
11个Linux基础面试问题
查看>>
《嵌入式 Linux C 语言应用程序设计(修订版)》一导读
查看>>
《Python金融大数据分析》一2.3 延伸阅读
查看>>
Android View事件传递详解
查看>>
Elasticsearch-SQL
查看>>
我的失败与伟大 —— 上市之后的规划
查看>>