1. 编写一程序,实现基本数据的和对象数据的读写操作。
要求:(1) 向一个名为temp.dat的文件写入包含5个int型值和5个String型值。
(2) 存储一个表示当前时间的Date对象。
(3) 改写第五题中的类,实现向temp.dat中写入10个Square(正方形)类对象。
(4) 将上述步骤写在一个方法wirteObject()中;编写另个方法readObject,读出上述数据。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Scanner;
public class Operate_File_IO{
public static void main(String[] args) throws IOException, ClassNotFoundException{
writeObject();
readObject();
}
public static void writeObject() throws IOException{
int number;
String str;
Scanner input = new Scanner(System.in);
ObjectOutputStream output =
new ObjectOutputStream(new FileOutputStream("temp.dat"));
System.out.println("Please input five integers and five strings: ");
for(int i = 0; i < 5;i++){
number = input.nextInt();
str = input.nextLine();
output.writeInt(number);
output.writeUTF(str);
}
output.writeObject(new java.util.Date());
Square1[] squares = new Square1[10];
for(int i = 0; i < 10; i++){
squares[i] = new Square1(i+1);
output.writeObject(squares[i]);
}
output.close();
}
public static void readObject() throws IOException, ClassNotFoundException {
ObjectInputStream input =
new ObjectInputStream(new FileInputStream("temp.dat"));
int[] array = new int[5];
String[] ch = new String[5];
int j = 0;
for(j = 0; j < 5; j++){
array[j] = input.readInt();
ch[j] = input.readUTF();
}
java.util.Date date = (java.util.Date)(input.readObject());
Square1[] squares1 = new Square1[10];
for(int i = 0; i < 10 ; ++i){
squares1[i] = (Square1)(input.readObject());
}
System.out.println("The five integers and five strings are: ");
for(int r = 0; r < 5; r++){
System.out.println(array[r] + " " + ch[r]);
}
System.out.println("The time is:" + date);
System.out.println("The ten squares are:");
for(int r = 0; r < 10 ;r++)
System.out.println(squares1[r]);
input.close();
}
}
import java.io.Serializable;
public class Square1 implements Serializable{
private double side;
Square1[] squares = new Square1[12];
public Square1(double side){
this.side = side;
}
public double getSide() {
return side;
}
public void setSide(double side) {
this.side = side;
}
}