Java IO流


Java.io包中流的操作主要有字节流和字符流两大类,两类都有输入和输出的操作。在字节流中,输入和输出分别使用InputStream和OutputStream;在字符流中,分别使用Reader和Writer。

OutputStream类和InputStream类都是抽象类,如果要使用此类,则必须使用其子类向上转型来实例化。在程序中,一个字符等于两个字节,java中提供Writer和Reader两个类专门操作字符流.其与字节流操作唯一的好处就是可以直接对字符进行操作,不用将字符串变成byte数组后再输出/输入。InputStream/OutputStream与Reader/Writer的区别除了操作对象不同之外,是否还存在其他的不同呢?实际上,字节流(InputStream/OutputStream)在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流(Reader/Writer)在操作时用到了缓冲区,通过缓冲区再操作文件。

InputStreamReader将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。

构造方法 : 
    InputStreamReader isr = new InputStreamReader(InputStream in);//构造一个默认编码集的InputStreamReader类 
    InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);//构造一个指定编码集的InputStreamReader类。 

BufferReader类用于从缓冲区中读取数据,BufferReader构造方法中只能接收字符输入流的实例,所以必须用字符输入流和字节输入流的转换类InputStreamReader类将字节输入流System.in转换成字符输入流。

Scanner类是java中提供的专门输入类。打印流是整个IO包中最方便的输出类,主要包括字节打印流PrintStream和字符打印流PrintWriter。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值