您的位置:首页 > 编程语言 > Java开发

java学习之 io流的基本操作(2)

2017-01-13 15:03 405 查看
对于输入输出流, 如果每次只一次读取一个字符或者字节, 当数据量很大的时候, 来回读取, 就好比, 每次吃饭, 一个人, 一次从电饭锅里面取一粒米, 当然, 时间够长, 你也够吃得饱,但是这样,你觉得会好吗? 如果, 给你一个碗 , 一次先从电饭锅里面, 舀一碗, 你吃完这一碗,再去盛一碗, 这样是不是更好呢.所以,在这里, 实现io时候, 也是会出现类似的问题.

      public void doSimpleIO(){
try {
String str="C:\\Users\\Administrator\\Desktop\\cshi.txt";
FileInputStream fis=new FileInputStream(str);
int c=0;
while((c=fis.read())!=-1){
System.out.print((char)c);
}

fis.close();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

增加一个简单的缓存数组,如下:

public void doSimpleIO2(){
try {
String str="C:\\Users\\Administrator\\Desktop\\cshi.txt";
FileInputStream fis=new FileInputStream(str);
int c=0;
//int i=0;
byte[] b=new byte[1024];
while((c=fis.read(b))!=-1){
//System.out.println(++i);
System.out.print(new String(b,0,c));
}

fis.close();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

这样先读取的数据先放到byte数组里面,再做操作,岂不是更好, 如果是一个特别大的文件,测试的时候,就会明显感觉效率不一样了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: