黑马程序员——Java基础---I/O流(下[字符流])

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
字符流
(1)尽管字节流提供了处理任何类型输入\输出操作足够的功能,他们不能直接操作Unicode字符。
既然Java的一个主要目的是“只写一次,到处运行”的哲学,包括直接的字符输入/输出支持是必须的。
字符流层次结构的顶层是Reader和Writer抽象类。
(2)ASCII 码支持英文,但不支持东亚地区的字符,而Unicode支持。
Java语言使用Unicode来表示字符和字符串,一个Unicode字符用两个字节表示的,也就是16位。
(3)Reader和Writer都是抽象类,有较多的子类,与字节流相似,他们用来创建具体的字符流对象进行IO操作。字符流的读写方法和
字节流的相应方法是很类似的,但读写对象使用的是字符。
(4)InputStreamReader和OutputStreamWriter类,是java.io包中用于处理字符流的基本类,用来在字节流和字符流之间搭一座桥。这里
字节流的编码规范与具体的平台有关,可以在构造流的对象时指定规范,也可以用当前平台的缺省规范。
简言之,读取字节,变为字符。
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
(5)InputStreamReader构造方法参数为InputStream : InputStreamReader(InputStream in);
(6)BufferedReader 类有readLine()方法,比较常用,如果读到文件末尾,返回null。

(7)System.out 是 PrintStream类型(继承自FilterOutputStream类), 是标准的输出流。向标准输出设备 打印输出流。
(8)System.in 是 InputStream类型,是标准的输入流,从标注输入设备读取输入流。
常用形式: BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
a.
String str = br.readLine();
while(null != str){
System.out.println(str);
str = br.readLine();
}
b.
String str = null;
while(null != (str = br.readLine())){
System.out.println(str);
}
br.close();

(9)FileReader类创建了一个可以读取文件内容的Reader类。FileReader继承自InputStreamReader。
他最常用的构造方法显示如下:
FileReader(String filePath)
FileReader(File fileObj)
每一个都能引发一个FileNotFoundException异常。这里,filePath是一个文件的完整路径,fileObj是描述该文件的File对象。
(10)FileWriter创建一个可以写文件的Writer类。FileWriter继承与OutputStreamWriter,它最常用的构造方法如下:
FileWriter(String filePath);
FileWirter(File fileObj);
FileWriter(String filePath, boolean append); 如果append为true,则将字节写入文件末尾处,而不是从写入文件开始。
(11)记住,有汉字的时候就使用Reader和Writer,而不能使用InputStream 和OutputStream
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值