Java IO(三):OutputStream

OutputStream 类是 Java IO API 中所有输出流的基类。子类包括 BufferedOutputStream,FileOutPutStream 等等,

输出流和目标媒介

输出流往往和某些数据的目标媒介相关联,比如文件,网络连接,管道等。当写入到输出流的数据逐渐输出完毕时,目标媒介是所有数据的归属地。

Writer(byte)

writer(byte) 方法用于把单个字节写入到输出流中。OutputStream 的 Writer(byte) 方法将一个包含了待写入数据的 int 变量作为参数进行写入,只有 int 类型的第一个字节会被写入,其余位会被忽略。

OutputStream 的子类可能会包含 write 方法替代方法。比如 DataOutputStream 允许你利用 writeBoolean(); writeDouble(); 等方法将基本类型的 int,long,float,double,boolean 变量写入。

这是一个 OutputStream 的 write() 方法例子:

OutPutStream output = new FileOutputStream("c:\\data\\text.txt");
while(hasMoreData()){
    int data = getMoreData();
    output.write(data);
}
output.close();

这个例子首先创建了带写入的 FileInputStream。再进入 while循环之后,循环的判断条件是 hasMoreData() 方法的返回值。hasMoreData() 方法实现不予展示,请把这个函数理解为:有剩余可写数据时,返回 true,否则返回 false。

write(byte[])

OutputStream 同样包含了将字节数据中全部或者部分数据写入到输入流中的方法,分别是 Write(byte[]) 和 write(byte[], int offset, int length).
write(byte[]) 把字节数组中的所有数据写入到输出流中。
write(byte[],int offset, int length) 把字节数据中从 offset 位置开始,length 个数据写入到输出流中。

flush()

OutputStream 的 flush() 方法将所有写入到 OutputeStream 的数据冲刷到相应的目标媒介中。比如,如果输出流死 FileOutputStream,呢么写入到其中的数据可能并没有真正的写入到磁盘中。即使所有的数据都写入了 FileOutputStream,这些数还是有可能保留在内存中。通过调用 flush(); 方法,可以把缓冲区内的数据刷新到磁盘中

close()

当你结束数据写入时,需要关闭 OutputStream。通过调用 close() 可以达到这一点。因为 Outputstream 的各种 write 方法可能会抛出 IO 异常,所以你需要把调用 close() 的关闭操作在 finally 块中执行。这是一个 OutputStream 调用 close() 的例子。

OutputStream output = nul;;
try{
    output = new FileOutputstream("文件");
    while(hasMoreData()){
        int data = getMoreData();
        output.write(data);
    }
}finally{
    if(output != null){
        output.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值