声明:本系列只供本人自学使用,勿喷。
当你需要从输入流中读取基本数据类型,或者往输出流中写入基本数据类型,就需要用DataInputStream或DataOutputStream来装饰流。
一、DataInputStream
public class DataInputStream extends FilterInputStream implements DataInput{
public DataInputStream(InputStream in) {
super(in);
}
}
- 核心方法【DataInput接口的方法】
读取某类型,就连续read() n次(n=该类型占用字节数)
public final char readChar() throws IOException {
int ch1 = in.read();
int ch2 = in.read();
if ((ch1 | ch2) < 0)
throw new EOFException();
return (char)((ch1 << 8) + (ch2 << 0));
}
public final int readInt() throws IOException {
int ch1 = in.read();
int ch2 = in.read();
int ch3 = in.read();
int ch4 = in.read();
if ((ch1 | ch2 | ch3 | ch4) < 0)
throw new EOFException();
return ((ch1 << 24) + (ch2 << 16) + (ch3 << 8) + (ch4 << 0));
}
二、DataInputStream
public class DataOutputStream extends FilterOutputStream implements DataOutput {
public DataOutputStream(OutputStream out) {
super(out);
}
}
- 核心方法【DataOutput接口的方法】
写入某类型,就连续write() n次(n=该类型占用字节数)
public final void writeChar(int v) throws IOException {
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
incCount(2);
}
public final void writeInt(int v) throws IOException {
out.write((v >>> 24) & 0xFF);
out.write((v >>> 16) & 0xFF);
out.write((v >>> 8) & 0xFF);
out.write((v >>> 0) & 0xFF);
incCount(4);
}
网友评论