Java中input与output_Java中的InputStream和OutputStream

Java中的InputStream和OutputStream

做Java技术好几个月了,碰到了很多琐碎细小的技术点,一直没有记录。“勿以善小而不为”,正好今天有点空,先从两个Stream说起。

InputStream vs OutputStream

InputStream用来进行数据读取,而OutputStream用来进行数据写入。接口描述:

public abstract class InputStream implements Closeable {

public abstract int read() throws IOException;

public int read(byte b[]) throws IOException;

public int read(byte b[], int off, int len) throws IOException;

public long skip(long n) throws IOException;

public void close() throws IOException;

public synchronized void mark(int readlimit);

public synchronized void reset() throws IOException;

//...

}

public abstract class OutputStream implements Closeable, Flushable {

public abstract void write(int b) throws IOException;

public void write(byte b[]) throws IOException;

public void write(byte b[], int off, int len) throws IOException;

public void flush() throws IOException;

public void close() throws IOException;

}

Close Streams

Java中的Stream是需要通过close方法显式进行关闭的。OutputStream上面还有一个方法叫flush,close方法会自动执行flush。所以在调用close之前无需调用flush方法。

如果一个Stream在构建的时候,通过构造函数传入另外一个Stream,当该Stream被close的时候,原始的Stream也会被关闭,参见如下代码:

OutputStream file = new FileOutputStream( "quarks.ser" );

OutputStream buffer = new BufferedOutputStream( file );

ObjectOutput output = new ObjectOutputStream( buffer );

try{

output.writeObject(quarks);

}

finally{

output.close();

}

派生类

076286a10e0fccfd607b8f984ae4dd2a.gif

1b88a5b15e1654d15fd8a013b0de5c59.gif

有时间的话会把每个派生类简单解释一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值