巧用Scanner将InputStream转成String
来源:互联网 发布:mt4外汇交易系统源码 编辑:程序博客网 时间:2024/05/14 06:40
巧用Scanner将InputStream转成String
最近在读一个仓库源码的过程中,遇到两句代码,我看了好一会,居然没看懂,还有这种操作??
代码如下:
try { final AssetManager am = getAssets(); final InputStream inputStream = am.open("test.txt"); Scanner scanner = new Scanner(inputStream, "UTF-8"); return scanner.useDelimiter("\\A").next();} catch (final IOException e) { // TODO Auto-generated catch block e.printStackTrace();}
这段代码运行后可以把test.txt文件的内容直接转成String返回。
代码看上去很简单,然而这个Scanner类,我在脑海里搜索了一遍发现完全没印象也不知道是干嘛用的。
查了资料,才想起来,在最初学Java的时候,不就是用Scanner来读取控制台的输入吗 - -||
再看scanner.useDelimiter(“\\A”),这句代码有什么作用,查了一下是用于把输入内容以参数作为分隔符,调用next()的时候可以获取分隔符分割后的每一个字符串。看上去跟String的split方法很类似,也是分割字符串。
再看\\A
这个参数,这到底是什么鬼(捂脸),为什么用这个来分割可以获得整个字符串,孤陋寡闻的我只知道\r
和\n
还有\r\n
(再次捂脸)。再次搜索引擎逛了一圈,居然没搜到!
只能再回去看scanner.useDelimiter()这个方法的描述,这个参数是一个pattern,原来是正则表达式。于是,继续去查正则表达式\\A
代表什么,原来跟^
的作用是一样的,代表文本的开头,噗。所以以文本的开头作为分隔符分割文本,就能获取整段文本的内容了,同时Scanner也在内部完成了InputStream转String的操作,节省代码不需要我们再写循环把inputStream的内容读到byte[]再放进String。
以后读取文件获取String可以参考Scanner这种骚操作了,nice!
阅读全文
0 0
- 巧用Scanner将InputStream转成String
- 如何将InputStream转成String
- 如何将String转成InputStream
- 如何将String转成InputStream
- 如何将String转成InputStream .
- 利用Scanner将string转成Map
- InputStream转成String
- 将InputStream(输入流)转成String 的方法
- InputStream到String只差一个Scanner
- 将int转成string
- 将string转换成inputstream
- java将InputStream转为String
- 将string转换成inputstream
- 将String转换成InputStream
- 将输入流InputStream转换为String
- 将InputStream流装换成String字符串
- 将输入流InputStream转换为String
- 将输入流InputStream转换为String
- String 和 StringBuffer 以及final修饰
- 灵异现象(二):为什么C语言下正常,JS中就求不出素数呢?
- 简易的微信公众号管理平台使用指南
- numpy
- Hadoop入门案例(八)之 表 关联
- 巧用Scanner将InputStream转成String
- win32汇编 函数返回值在eax寄存器中
- 如何在chrome浏览器下设置12px以下的字体
- JavaScript的事件机制
- LabView——计算三角形面积
- java鬼混笔记:jsp上传文件不跳转页面
- 游戏中的碰撞检测
- Perfect Squares
- Android iptables使用