万物接对象所以数组也是一个对象,可以直接写入;
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());
}
}