zoukankan      html  css  js  c++  java
  • Serializable使用

    android的另一个序列化Serializable比较简单,实现它的接口,然后生成所有成员变量的方法,再生成所有成员变量的getset方法,serializable可以存储对象,所以下面代码传递了一个man对象,然后保存在外置内存卡路径/sdcard/AAAData/output.txt如果没有output.txt文件,打开输出流后会自动生成一个空文件然后写入此空文件,后缀.txt让系统默认用text文本打开.点击按钮打开另一个activity然后反序列化读取output.txt文件.最后不要忘了在配置文件中申明读取文件权限,

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />运行后手机设置也要打开存储权限,再运行一次就好
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            try {
                Man man = new Man("huhx", "123456");
                Person person = new Person(man, "刘力", 21);
                ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(new File("/sdcard/AAAData/output.txt")));
                objectOutputStream.writeObject("string");
                objectOutputStream.writeObject(person);
                objectOutputStream.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            Button button = findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    startActivity(new Intent(MainActivity.this, Main2Activity.class));
                }
            });
        }
    }

    上面是第一个activity代码

    public class Main2Activity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            try {
                ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("/sdcard/AAAData/output.txt"));
                String string = (String) objectInputStream.readObject();
                Person person = (Person) objectInputStream.readObject();
                objectInputStream.close();
                System.out.println(string + ", age: " + person.getAge() + ", man username: " + person.getMan().getUsername());
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    上面是第二个activity代码

    public class Person implements Serializable {
        private static final long serialVersionUID = 1L;
    
        private Man man;
        private String username;
        private  int age;
    
        public Person() {
            System.out.println("person constru");
        }
    
        public Person(Man man, String username, int age) {
            this.man = man;
            this.username = username;
            this.age = age;
        }
    
        public Man getMan() {
            return man;
        }
        public void setMan(Man man) {
            this.man = man;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    
    }

    上面是自定义类Person代码

    public class Man implements Serializable {
        private static final long serialVersionUID = 1L;
    
        private String username;
        private String password;
    
        public Man(String username, String password) {
            this.username = username;
            this.password = password;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
    }

    上面是自定义对象man代码

  • 相关阅读:
    最长上升子序列(实验回顾)
    数据库应用开发一、vs
    全文检索
    mangtomant 增删改查
    django
    SQLAlchemy 增删改查 一对多 多对多
    Flask-Sqlalchemy—常用字段类型说明
    flask
    文件下载
    python连接mongodb
  • 原文地址:https://www.cnblogs.com/Ocean123123/p/10956355.html
Copyright © 2011-2022 走看看