1.DataInputStream和DataOutputStream
数据输入流和数据输出流
DataInputStream实现了接口DataInput:

功能上来说:实现了直接从字节流中读取java基本类型数据和String数据。
基本类型是指:boolean、char、Double、float等。
DataInputStream
构造方法:
new DataInputStream(fileInputStream)
api:
int read(byte[] b)
int read(byte[] b,int offset,int len)
boolean readBoolean()
byte readByte()
char readChar()
double readDouble()
float readFloat()
int readInt()
long readLong()
short readShort()
int readUnsignedByte()
int readUnsignedShort()
String readUTF()
static String readUTF(DataInput in)
void readFully(byte[] b)
void readFully(byte[] ,int offset,int len)
read()和readFully()如何选择?
不指定长度读取使用read();
指定长度使用readFully(),readFully()可能会造成线程阻塞。
DataOutputStream:
构造方法:
new DataOutputStream(fileOutputStream)
api:
void flush()
int size()
void write(byte[],int offset,int len)
void write(int b)
void writeBoolean(boolean v)
void writeByte(int byte)
void writeBytes(String s)
void writeChar(int char)
void writeChars(String s)
void writeDouble(double double)
void writeFloat(float float)
void writeInt(int int)
void writeLong(long long)
void writeShort(short short)
void writeUTF(String str)
【案例】DataOutputStream



【案例】DataInputStream



日志:

2.ObjectInputStream和ObjectOutputStream
使用这两个类,可以实现网络间传入数据对象,这个数据对象不只是string类型,可以使任意对象。需要这些对象实现serializable接口。
ObjectOutputStream
构造方法:
new ObjectOutputStream(fileOutputStream)
api:
writeObject(Object o),可以写入任意对象。
ObjectInputStream:
构造方法:
new ObjectInputStream(fileInputStream)
api:
Object readObject().
【案例】ObjectOutputStream
步骤:
(1)写入一个类实例,这个类需要实现serializable接口。
(2)使用ObjectOutputStream的writeObject(o)方法。

项目结构:

Student.java



MyTest3.java



【案例】ObjectInputStream
注意:

MyTest4.java




日志:

【作业】
设计登录场景,登录信息包括账号和密码,账号和密码是User类的2个属性:username和password。首次登录需要保存到user.data文件中,第二次通过输入账号和密码,与user.data中序列化的数据进行比对,正确给出提示。错误也给出提示。
网友评论