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 studentsArrayList = new ArrayList();        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 savedArrayList =(ArrayList) 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.效果如下图所示。

Android保存Serializable数据到本地_第1张图片

Android保存Serializable数据到本地_第2张图片

更多相关文章

  1. 安卓课程二十三 ImageView实现适屏和裁剪图片
  2. Android 自定义ListView实现Item左右滑动删除
  3. Android通过HTTP协议实现上传文件数据
  4. Android一个ListView列表之中插入两种不同的数据
  5. 【android】把view保存为图片的方法以及解决保存后图片背景变黑
  6. 适配 Android10 内部存储图片显示问题
  7. Android 将数据库文件保存至sdcard中

随机推荐

  1. 详细介绍通过JAXB实现XML和对象之间的映
  2. 如何使用bash解析xml的示例代码分析
  3. XML文件使用DOM方法读取的示例代码
  4. 详细介绍JavaBean和XML互转工具类
  5. XML和Schema命名空间的具体实例代码分享
  6. XML文件使用SAX方法读取的示例代码
  7. XML字符转Map工具类的示例代码分享
  8. 详细介绍XML原理代码实例
  9. 解析XML文件的几种方式对比的详细介绍
  10. XML和Schema命名空间的详细介绍