万物接对象所以数组也是一个对象,可以直接写入;
package
com.java.test;
import
java.io.BufferedInputStream;
import
java.io.BufferedOutputStream;
import
java.io.FileInputStream;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.io.ObjectInputStream;
import
java.io.ObjectOutputStream;
import
java.util.ArrayList;
import
java.util.List;
/**
* 测试向本地文件存储及读取对象数组
*
@author
Administrator
* 2015年11月4日16:00:22
*
*/
public
class
TestListObject {
/**
* 建立一个学生对象的数组
*
@param
stu
*
@return
*/
public
static
List<Student> listStudents(Student
stu){
List<Student>
lists
=
new
ArrayList<Student>();
for
(
int
i = 0;
i
<10;
i++) {
lists.add(
stu);
}
return
lists;
}
/**
* 将student对象数组写入到文件中,数组也是一个对象,所以可以直接使用对象流存到文件中
*
@param
stus
*/
public
static
void
writeIntoFile(List<Student>
stus){
ObjectOutputStream
oos;
try
{
oos
=
new
ObjectOutputStream(
new
BufferedOutputStream(new
FileOutputStream("F://file.txt"
)));
oos.writeObject(
stus);
oos.flush();
oos.close();
}
catch
(IOException
e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
finally{
System.
out.println(
"文件写入完成!"
);
}
}
/**
* 从文件中读取对象数组,并强制转换对象
*/
@SuppressWarnings("unchecked")
public
static
List<Student> testReader(){
List<Student>
lists
=
null;
try
{
ObjectInputStream
ois
=
new
ObjectInputStream(
new
BufferedInputStream(new
FileInputStream("F://file.txt"
)));
lists=(ArrayList<Student>)
ois.readObject();
ois.close();
}
catch
(IOException
e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
catch
(ClassNotFoundException
e) {
//
TODO
Auto-generated catch block
e.printStackTrace();
}
finally{
System.
out.println(
"读取成功!");
}
return
lists;
}
public
static
void
main(String[]
args) {
Student
student
=
new
Student();
student.setId(99);
student.setName(
"maliao");
student.setScore(899);
//List<Student>
stus = listStudents(student);
//writeIntoFile(stus
);
System.
out.println(
testReader());
}
}