DataInputSteam和DataOutputSteam是没有必要存储整个对象的信息,
而只是要存储一个对象的成员数据,
成员数据的类型假设都是Java的基本数据类型,
这样的需求不必使用到与Object输入、输出相关的流对象,
可以使用DataInputStream、DataOutputStream来写入或读出数据
package com.study;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import com.study.Books;
public class DataStreamBooks {
public static void main(String[] args) {
//使用DataInputStream,DataOutputStream写入文件且从文件中读取数据。
Books [] books = {new Books("Java基础教程","2010-1-2",10),
new Books("Javascript基础教程","2010-2-2",20),
new Books("Servlet基础教程","2010-3-2",30),
new Books("JSP基础教程","2010-4-2",40)
};
try {
//Data Stream写到输入流中
DataOutputStream dos = new DataOutputStream(new FileOutputStream("F:\\project\\study\\WebRoot\\datasteam.txt"));
for(Books book : books) {
dos.writeUTF(book.getBook_name());
dos.writeUTF(book.getBook_date());
dos.writeInt(book.getMoney());
}
dos.flush();
dos.close();
DataInputStream dis = new DataInputStream(new FileInputStream("F:\\project\\study\\WebRoot\\datasteam.txt"));
for(Books book : books) {
System.out.print(dis.readUTF());
System.out.print("==========");
System.out.print(dis.readUTF());
System.out.print("==========");
System.out.println(dis.readInt());
}
dis.close();
}
catch(IOException e) {
e.printStackTrace();
}
}
}
DataStreamBooks.java
package com.study;
public class Books {
private String book_name;
private String book_date;
private int money;
public Books(String book_name,String book_date,int money) {
this.book_name = book_name;
this.book_date = book_date;
this.money = money;
}
public String getBook_name() {
return book_name;
}
public void setBook_name(String book_name) {
this.book_name = book_name;
}
public String getBook_date() {
return book_date;
}
public void setBook_date(String book_date) {
this.book_date = book_date;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
Books.java