java中的处理流






处理流

当你用节点流的时候你会发现,它会频繁的访问i/o流的次数,为避免这样而损耗我们的硬盘 这时我们就用处里流。那到底什么是处里流呢?通俗的说就是包在别的流外面的流,类似于包在管道外面的管道。


public class mm{
public static void main(String[ ] args){
FileInputStream input =new FileInputStream("d:\\java\\input.java“);
BufferInputStream buffer=new BufferInputStream(input);
int c=0;
system.out.println(buffer.read()); //这里读取的是数目,如果要读取内容的话强制转换一下(char)buffer.reader()
buffer.mark(100); //从第100个开始读取
for(int i=0;i<10 && (c=buffer.read())!=-1;i++){
system.out.print((char)c+""); //这里强制转换成char类型读取里面的内容
}
buffer.reset();//重置到第100开始读取
for(int i=0;i<10 && (c=buffer.read())!=-1;i++){
system.out.print((char)c+""); 

}

}


public class nn{

public static void main (String[] args){
BufferWriter writer=new BufferWriter(new Writer(d:\\java\\nn.java));//new BufferWriter 里面放的参数是一个writer对象
//这里就类似与在new Writer的外面套了层BufferWriter流处理解决里层接口只能一个一个字符的传输
BufferReader reader=new BufferReader(new Reader("d:\\java\\jj.java"));

int c=0;

String d=null;

for(int i=0;i<100;i++){

d=String.valueof(Math.random);//得到随机数

writer.write(d);//将得到的随机数写入文件

writer.newLine; //换行.

}

writer.flush(); //对于输出的缓冲流,写出的数据会现在内存缓冲,使用flush可以将内存的数据立即写出

}

while((d=reader.readLine())!=null){  //读取每一行是一个String类型

system.out.print(d);

}

reader.close();

writer.close();

}
文中代码省略了try-catch。

假设我们想写入一段long类型的数字,但是你又感觉转型特别麻烦。这里我们就可以用到处理流里面的Date--Stream,这个流里面有writeDouble(double n)方法。
 

下面举个简单地例子方便我们理解:

public class dataTest{

public static void main (String[ ] args){

ByteArrayOutputStream byteOut=new ByteArrayOutputStream();

DataOutputStream dataOut=new DataOutputStream(byteOut);

dataOut.writeDouble(Math.random); //写入一个double类型的随机数

dataOut.writeBoolean(true);  //在最后一行写入boolean类型的true

System.out.print(dataOut);

ByteArrayInputStream byteInput=new ByteArrayInputStream(byteOut.toByteArray());

DataInputStream dataInput=new DataInputStream(byteInput);

System.out.print(dataInput.readDouble());  //这里遵循先进后出规则
 
System.out.print(dataInput.readBoolean());

dataInput.close();
dataOut.close(); 
}

}

注意上面的代码一律忽略了try-catch。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值