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

对于输入输出流, 如果每次只一次读取一个字符或者字节, 当数据量很大的时候, 来回读取, 就好比, 每次吃饭, 一个人, 一次从电饭锅里面取一粒米, 当然, 时间够长, 你也够吃得饱,但是这样,你觉得会好吗? 如果, 给你一个碗 , 一次先从电饭锅里面, 舀一碗, 你吃完这一碗,再去盛一碗, 这样是不是更好呢.所以,在这里, 实现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数组里面,再做操作,岂不是更好, 如果是一个特别大的文件,测试的时候,就会明显感觉效率不一样了.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值