編輯:關於Android編程
MainActivity如下:
package cc.test.serializable;
import java.io.File;
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 android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
/**
* Demo描述:
* 將ArrayList<自定義數據>在SDCard上進行存取.
*
* Parcelable和Serializable的區別:
* 內存間數據傳輸時推薦使用Parcelable,如activity間傳輸數據
* 比如:http://blog.csdn.net/lfdfhl/article/details/10961459
* 保存到本地或者網絡傳輸時推薦使用Serializable
*/
public class TestSerializableActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
testSerializable();
}
private void testSerializable() {
FileOutputStream fileOutputStream=null;
ObjectOutputStream objectOutputStream =null;
FileInputStream fileInputStream = null;
ObjectInputStream objectInputStream = null;
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.dat");
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());
}
} 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();
}
}
}
}
}
Student如下:
package cc.test.serializable;
import java.io.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 + "]";
}
}
main.xml如下:
深入解讀Android的Volley庫的功能結構
Volley 是一個 HTTP 庫,它能夠幫助 Android app 更方便地執行網絡操作,最重要的是,它更快速高效。我們可以通過開源的 AOSP 倉庫獲取到 Voll
榮耀8和榮耀v8有什麼不同 榮耀8和榮耀v8買哪個好
榮耀8和榮耀v8有什麼不同?榮耀8發布後,和之前的發布的榮耀v8有什麼不一樣?相信很多人都有這樣的疑問,其實總的一句話就可以概括了:榮耀8主打小屏旗艦,榮耀
地圖篇之百度地圖各種自定義需求
項目中的對地圖的各種需求,實現方式。需求1:自定義縮放按鈕,自定義當前位置按鈕解決方式:隱藏地圖本身自帶的縮放按鈕,添加自定義的縮放按鈕,實現點擊縮放地圖功能(一). 隱
如何避免惡意安卓Android應用
Android權限對於開發者來說既是最好的朋友,也是最壞的敵人。即便是優秀且有信譽的應用開發人員和公司,也需要深度的Android權限以保證基礎 性的功能。