Android Serialization序列化

來源:互聯網
上載者:User

標籤:

Android Serialization

目的:

為了方便測試感應器資料處理演算法,Android程式的採集資料。序列化儲存為檔案。pc程式再通過還原序列化讀入對象,在PC上測試演算法。

Java 序列化:

將Java對象序列化為二進位檔案的Java序列化技術是Java系列技術中一個較為重要的技術點,在大部分情況下,開發人員僅僅須要瞭解被序列化的類須要實現Serializable介面。使用ObjectInputStream和ObjectOutputStream進行對象的讀寫。

注意事項:

要序列化的對象的類要滿足下麵條件:

1.類要實現Serializable介面

2. serialize 和deserialize程式要保證package一致

3.serialVersionUID要一致


常式:
package com.example.coolwaterld.serializedemo;import java.io.Serializable;class Person implements Serializable //Added implements Serializable{    String name="";    private String number="";    private String address="";    private static final long serialVersionUID = 1L;       public String getName()    {        return name;    }    public String getNumber()    {        return number;    }    public String getAddress()    {        return address;    }}


package com.example.coolwaterld.serializedemo;import android.app.Activity;import android.os.Bundle;import android.util.Log;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class MainActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Person person = new Person();        person.setName("coolwaterld");        person.setAddress("BJ");        person.setNumber("123");        //save the object        saveObject(person);        // Get the Object        Person person1 = (Person)loadSerializedObject(new File("/sdcard/person.bin"));         Log.i("Name", person1.getName());    }    public void saveObject(Person p){        try        {            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("/sdcard/kvmatrix.bin")));             oos.writeObject(p);             oos.flush();             oos.close();        }        catch(Exception  ex)        {            Log.v("Serialize write: ", ex.getMessage());            ex.printStackTrace();        }    }    public Object loadSerializedObject(File f)    {        try        {            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));            Object o = ois.readObject();            return o;        }        catch(Exception ex)        {            Log.v("Serialize Read: ",ex.getMessage());            ex.printStackTrace();        }        return null;    }}

在AndroidManifest.xml中<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>


參考:

Java –Serialization

http://www.tutorialspoint.com/java/java_serialization.htm

Java 序列化的進階認識

ca=drs-#icomments">http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html?

ca=drs-#icomments

(序列化ID的問題,靜態變數序列化,父類的序列化與Transientkeyword,對敏感欄位加密,序列化儲存規則)





Android Serialization序列化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.