Java编程那些事儿91——装潢流操纵2[Java编程]
本文“Java编程那些事儿91——装潢流操纵2[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
11.3.3.2 BufferedReader/BufferedWriter
在举行IO操作时,除了功效以外,程序的履行效率也是必必要考虑的问题.基本的IO类只是注重功效的实现,比方将特定的数据源转换为流对象,而没有过量的关注读写的效率问题,而实际在举行项目开辟时,读写效率也是必必要考虑的问题.
为了提高IO类的读写效率,在装潢流中专门制作了一类缓冲流,该类流的作用就是提高流的读写效率,这组缓冲流包含:BufferedInputStream/BufferedOutputStream、BufferedReader/BufferedWriter.
该部份以BufferedReader/BufferedWriter为底子举行介绍.
由于前面介绍DataInputStream/DataOutputStream时,是以文件流作为实体流举行介绍,这里就不再反复了,这里从前面介绍的接纳掌握台输入为底子介绍缓冲输入流的利用.
由于装潢流在举行嵌套时,只能嵌套相同范例的流,比方InputStream范例的流之间可以嵌套,但是InputStream和Reader两个体系之间的流就无法直接嵌套,为了利用新的IO类带来的特点,在IO类中供应了两个专门的类,实现体系之间的转换,这两个流类被形象的称为“桥接流”.
桥接流主要包含2个,顺次是:
1、InputStreamReader
该类实现将InputStream及其子类的对象转换为Reader体系类的对象,实现将字节输入流转换为字符输入流.
2、OutputStreamWriter
该类实现将OutputStream及其子类的对象转换为Writer体系类的对象,实现将字节输入流转换为字符输入流.
这两个桥接流使得字节俭可以被转换为字符流,但是需求注意的是,字符流无法转换为字节俭.
在读取掌握台输入时,直接利用System.in举行读取,固然在功效上可以实现,但是这种方法读写流的效率对比差,所以在实际利用时普通需求提高读写的效率,这就需求利用装潢流中的缓冲流,这是一个典型的流的嵌套的示例.该代码实现的功效是假如回显用户输入,当用户输入quit时程序退出.该示例的代码以下:
import java.io.*;
/**
* 利用BufferedReader读取掌握台输入
*/
public class ReadConsoleWithBuffer {
public static void main(String[] args) {
BufferedReader br = null;
String s = null;
try{
//利用流的嵌套构造缓冲流
br = new BufferedReader(
new InputStreamReader(System.in));
do{
//输出提醒信息
System.out.println("请输入:");
//按行读取输入
s = br.readLine();
//输出用户输入
System.out.println(s);
}while(!s.equals("quit"));
}catch(Exception e){
e.printStackTrace();
}finally{
try{
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
在该示例代码中,首先利用流的嵌套构建了BufferedReader范例的对象br,然后利用BufferedReader中的readLine办法,每次读取用户输入的一行信息,利用readLine办法读取内容时,系统以”rn”作为每次的完毕标记,并且读取的内容不包含”rn”,当读取到流的末尾时readLine办法的返回值是null.然后利用do-while循环判断用户输入的能否是quit,假如输入的是quit,则程序完毕,不然持续下一次循环.
关于BufferedWriter的利用,没有什么分外的地方,这里就不但独举例阐明了.
11.3.3.3 装潢流小结
前面介绍了两类对比常见的装潢流,在实际的开辟中,按照逻辑的需求还大概会用到别的的装潢流,这些装潢流的利用和前面介绍的类近似,在实际利用时通过查阅JDK API文档找到按照功效找到符合的装潢流,然后举行利用便可.
以上是“Java编程那些事儿91——装潢流操纵2[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |