안드로이드에서 기본 SharedPreferences는 매우 유용한 기능이기도 하지만 다양한 Object에 대해서 구현이 안되어 있습니다.
그래서 결국 찾다보니 어플만의 독립적인 내부 할당 공간에 Object단위로 저장하는 방법을 알아냈습니다.
SharedPreference도 결국은 파일로 기록되는 것이니, 속도차이는 없을것으로 생각됩니다.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import android.app.Activity;
import android.content.Context;
import com.test.mediarecord.util.log;
public class DataCenterMethod {
public static boolean existFile(Context context, String filename){
File file = context.getFileStreamPath(filename);
if(file != null){
return true;
}else{
return false;
}
}
public static void writeObjectToFile(Context context, Object object, String filename) {
ObjectOutputStream objectOut = null;
try {
FileOutputStream fileOut = context.openFileOutput(filename, Activity.MODE_PRIVATE);
objectOut = new ObjectOutputStream(fileOut);
objectOut.writeObject(object);
fileOut.getFD().sync();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (objectOut != null) {
try {
objectOut.close();
} catch (IOException e) {
log.e("writeObjectToFile objectOut.close() Error:"+e);
}
}
}
}
/**
*
* @param context
* @param filename
* @return
*/
public static Object readObjectFromFile(Context context, String filename) {
ObjectInputStream objectIn = null;
Object object = null;
try {
FileInputStream fileIn = context.openFileInput(filename);
objectIn = new ObjectInputStream(fileIn);
object = objectIn.readObject();
} catch (FileNotFoundException e) {
// Do nothing
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if (objectIn != null) {
try {
objectIn.close();
} catch (IOException e) {
log.e("writeObjectToFile objectIn.close() Error:"+e);
}
}
}
return object;
}
}
'스터디 > Android+Java' 카테고리의 다른 글
Android TextView Auto Size - ResizeView (2012.05.24) (0) | 2017.10.07 |
---|---|
Android AVD(AndroidVirtualDevices) Hardware Option (0) | 2017.10.07 |
Android XML Percent Size - Weight (2012.05.01) (0) | 2017.10.07 |
Android Force MediaScan (2012.04.26) (0) | 2017.10.07 |
Android View, ImageView 의 onTouch() 함수에서 ACTION_MOVE와 ACTION_UP이 안될때 (2012.04.17) (0) | 2017.10.07 |
댓글