博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
InputStream,InputStreamReader和Reader之间的区别与关系
阅读量:4180 次
发布时间:2019-05-26

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

转: 

InputStream:得到的是字节输入流,InputStream.read(“filename”)之后,得到字节流Reader:读取的是字符流 InputStreamReader:从字节到字符的桥梁InputStreamReader(InputStream.read(“filename”));reader.read(InputStreamReader(InputStream in));便可从字节变为字符,打印显示了。Java.io.Reader 和 java.io.InputStream 组成了Java 输入类。 Reader 用于读入16位字符,也就是Unicode 编码的字符;而 InputStream 用于读入 ASCII 字符和二进制数据。 Reader支持16位的Unicode字符输出, InputStream支持8位的字符输出。 Reader和InputStream分别是I/O库提供的两套平行独立的等级机构,1byte = 8bits InputStream、OutputStream是用来处理8位元的流, Reader、Writer是用来处理16位元的流。而在JAVA语言中,byte类型是8位的,char类型是16位的,所以在处理中文的时候需要用Reader和Writer。值得说明的是,在这两种等级机构下,还有一道桥梁 InputStreamReader、OutputStreamWriter负责进行InputStream到Reader的适配和由OutputStream到Writer的适配。在 Java中,有不同类型的 Reader 输入流对应于不同的数据源: FileReader 用于从文件输入; CharArrayReader 用于从程序中的字符数组输入; StringReader 用于从程序中的字符串输入; PipedReader 用于读取从另一个线程中的 PipedWriter 写入管道的数据。相应的也有不同类型的 InputStream 输入流对应于不同的数据源:FileInputStream,ByteArrayInputStream,StringBufferInputStream,PipedInputStream。另外,还有两种没有对应 Reader 类型的 InputStream 输入流: Socket 用于套接字; URLConnection 用于 URL 连接。 这两个类使用 getInputStream() 来读取数据。 相应的,java.io.Writer 和 java.io.OutputStream 也有类似的区别。

 

转载地址:http://kbgai.baihongyu.com/

你可能感兴趣的文章
Android中应用程序如何获得系统签名权限
查看>>
Recycler表格(excelPanel)
查看>>
android一行代码实现沉浸式布局效果
查看>>
json, recyclerView问题
查看>>
cmake处理多源文件目录的方法
查看>>
Service Intent must be explicit
查看>>
android studio SDK开发
查看>>
studio 统计代码的行数
查看>>
字符数组和16进制互换
查看>>
PHP项目中出现致命错误: Class 'Redis' not found
查看>>
There is no tracking information for the current branch.
查看>>
fatal: refusing to merge unrelated histories
查看>>
Git命令还原未提交的变更
查看>>
Linux系统中环境变量的配置
查看>>
Linux系统中配置脚本程序开机启动
查看>>
让Linux系统上的nginx支持php程序
查看>>
源码编译安装LNMP环境之Nginx篇
查看>>
源码编译安装LNMP环境之PHP篇
查看>>
Linux中rpm工具使用教程
查看>>
Linux中yum工具使用教程
查看>>