字节流通向字符流的桥梁:InputStreamReader
public class InputStreamReader
extends Reader
InputStreamReader 是字节流通向字符流的桥梁:它使用指定的
读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。charset
每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。
为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:
BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
构造方法摘要 |
---|
InputStreamReader(InputStream in) 创建一个使用默认字符集的 InputStreamReader。 |
InputStreamReader(InputStream in, Charset cs) 创建使用给定字符集的 InputStreamReader。 |
InputStreamReader(InputStream in, CharsetDecoder dec) 创建使用给定字符集解码器的 InputStreamReader。 |
InputStreamReader(InputStream in, String charsetName) 创建使用指定字符集的 InputStreamReader。 |
方法摘要 | |
---|---|
void
|
close() 关闭该流并释放与之关联的所有资源。 |
String
|
getEncoding() 返回此流使用的字符编码的名称。 |
int
|
read() 读取单个字符。 |
int
|
read(char[] cbuf, int offset, int length) 将字符读入数组中的某一部分。 |
boolean
|
ready() 判断此流是否已经准备好用于读取。 |
例:Demo
import java.io.*;
class InputStreamReaderDemo {public static void transReadNoBuf() throws IOException {/*** 没有缓冲区,只能使用read()方法。*///读取字节流//InputStream in = System.in;//读取键盘的输入。InputStream in = new FileInputStream("D:\\demo.txt");//读取文件的数据。//将字节流向字符流的转换。要启用从字节到字符的有效转换,//可以提前从底层流读取更多的字节.InputStreamReader isr = new InputStreamReader(in);//读取//综合到一句。//InputStreamReader isr = new InputStreamReader(//new FileInputStream("D:\\demo.txt"));char []cha = new char[1024];int len = isr.read(cha);System.out.println(new String(cha,0,len));isr.close();}public static void transReadByBuf() throws IOException {/*** 使用缓冲区 可以使用缓冲区对象的 read() 和 readLine()方法。*///读取字节流//InputStream in = System.in;//读取键盘上的数据InputStream in = new FileInputStream("D:\\demo.txt");//读取文件上的数据。//将字节流向字符流的转换。InputStreamReader isr = new InputStreamReader(in);//读取//创建字符流缓冲区BufferedReader bufr = new BufferedReader(isr);//缓冲//BufferedReader bufr = new BufferedReader(//new InputStreamReader(new FileInputStream("D:\\demo.txt")));可以综合到一句。/*int ch =0;ch = bufr.read();System.out.println((char)ch);*/String line;while((line = bufr.readLine())!=null){System.out.println(line);}isr.close();}
}
字节流通向字符流的桥梁:InputStreamReader相关推荐
- java byte char io流_吃透Java IO:字节流、字符流、缓冲流
前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...
- java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...
- 从字节流到字符流的装换
引用地址:https://blog.csdn.net/lzh_86/article/details/78107597 System.in的类型可以归结为节点流.字节流.输入流: InputStream ...
- Java语言基础(IO流2(字节流、字符流))
Java语言基础 IO流 字节流 可以读写任何类型的文件,比如:音频.视频 .文本文件 字节流的抽象基类: 字节输入流:InputStream 字节输出流:OutputStream 我们发现Input ...
- JAVA File类、IO流体验与简介(字节流、字符流、序列流、打印流、编码、递归)
1. File类 1.1. File类说明 存储在变量,数组和对象中的数据是暂时的,当程序终止时他们就会丢失.为了能够永 久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中.这些文件可以移动 ...
- 【Java基础】吃透Java IO:字节流、字符流、缓冲流
文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...
- fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流
前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...
- Java IO 字节流、字符流详解
1. 字节流与字符流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接.类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流 ...
- Java基础---认识IO流---字节流、字符流---缓冲流---转换流
一.认识IO流 I/O就是用于设备之间进行数据交互的对象所属的类型 IO流的体系结构:根据分类,有四种流对象类型 字节流:可以直接操作字节信息的流对象 字节输入流:InputStream 字节输出流: ...
最新文章
- 【转】PendingIntent的总结
- 深入剖析RocketMQ源码-NameServer
- java把字符串变代码,Java/javaScript将字符串转变成可执行的语句
- html与xml头部你懂吗?
- Android中shape的使用
- 111. Leetcode 300. 最长递增子序列 (动态规划-子序列问题)
- Vue_异步加载_vue-resource(不再维护)
- MongoDB 数据类型查询——$type使用
- JavaScript学习笔记:常量,枚举,宏定义
- 使用Maven命令安装jar包到repo中
- linux 测试网络端口通不通_能否使用一台矢量网络分析仪来控制多台 E5092A 以增加测试端口数?...
- java 命令参数详解
- Host是什么?如何设置host文件?
- [置顶] [VS2010]逸雨清风 永久稳定音乐外链生成软件V0.1
- 增值税发票查验平台网站时被拦截了怎么办?
- Bitmap的加载和Cache
- 小猫特别聪明的shoow
- 怎么用ai做出适量插画_8个步骤,快速绘制矢量插画
- 极客日报:宿华不再担任快手CEO,程一笑接任;微软市值重登全球第一;Bootstrap 4.6.1发布
- Linux 下如何添加一个普通用户,并给予用户root权限
热门文章
- 最新战火互娱JS逆向分析实战教程
- 计算机专业创新项目,计算机专业本科生的创新思维
- java sqlserver 遍历_mysql和sqlserver循环插入数据
- Python 3.5/3.6 windows 7 安装
- php验证码只有图片没有文字_有没有免费好用的图片文字识别工具?在线就能使用超准确...
- html ul高度自适应,如何让div中的ul元素自适应
- JDK8新特性(十一)之收集Stream流中的结果
- 为什么建议使用count(*)来统计数据行数
- cipher java aes 模式_java – 为什么我的AES Cipher在init的DECRYPT_MODE上抛出一个InvalidKeyException...
- 字典树实现_【Leetcode每日打卡】单词的压缩编码 Trie(字典树)入门