1.定义一个Student类,实现Serializable接口
public class Student implements Serializable {
private Integer id;
private String name;
//注意定义此字段
public static final long serialVersionUID = 9527L;
public Student() {
super();
}
public Student(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + "]";
}
}
2.模拟数据进行存储并读取,在屏幕上显示。
public class MainActivity extends AppCompatActivity {
private TextView tvShow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvShow=(TextView)findViewById(R.id.tvShow);
testSerializable();
}
private void testSerializable() {
FileOutputStream fileOutputStream=null;
ObjectOutputStream objectOutputStream =null;
FileInputStream fileInputStream = null;
ObjectInputStream objectInputStream = null;
StringBuffer sb=new StringBuffer();
ArrayList<Student> studentsArrayList = new ArrayList<Student>();
Student student = null;
for (int i = 1; i < 5; i++) {
student = new Student(i, "人物" + i);
studentsArrayList.add(student);
}
try {
//存入数据
File file = new File(Environment.getExternalStorageDirectory().toString()
+ File.separator +"Test"+File.separator + "data.txt");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
if (!file.exists()) {
file.createNewFile();
}
fileOutputStream= new FileOutputStream(file.toString());
objectOutputStream= new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(studentsArrayList);
//取出数据
fileInputStream = new FileInputStream(file.toString());
objectInputStream = new ObjectInputStream(fileInputStream);
ArrayList<Student> savedArrayList =(ArrayList<Student>) objectInputStream.readObject();
for (int i = 0; i < savedArrayList.size(); i++) {
//System.out.println("取出的数据:" + savedArrayList.get(i).toString());
sb.append("取出的数据:"+savedArrayList.get(i).toString()+"\r\n");
}
tvShow.setText(sb.toString());
} catch (Exception e) {
// TODO: handle exception
}finally{
if (objectOutputStream!=null) {
try {
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileOutputStream!=null) {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (objectInputStream!=null) {
try {
objectInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fileInputStream!=null) {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
3.添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
4.效果如下图所示。