我正在寻找一种在android中保存和加载数据的方法,我使用eclipse& amp; 我根本不想使用SharedPreferences,所以请不要建议
save(),我想我已经想通了,我这样做了:
int blankval = 1;
int targetval = 0;
FileOutputStream fou = openFileOutput("data.gds", MODE_PRIVATE);
fou.write(blankval);
fou.write(targetval);
fou.close();
虽然load()我不知道怎么做,我尝试了很多东西,所有这些都让应用程序在执行时崩溃
我想将每个val加载到两个整数(blankval& targetval)中,这样如果我这样做:
blankval = 5;
targetval = 7;
load();
然后加载将其值设置回0& 1
答案 0 :(得分:0)
SharedPreferences将是一个不错的选择,但如果您想避免这种情况,那么为什么不选择Android提供的 SQLite数据库。
答案 1 :(得分:0)
我必须建议您使用SharedPreferences :),但无论如何......
如果你需要reed你刚写的值,你应该使用 openFileInput :
http://developer.android.com/reference/android/content/Context.html#openFileInput(java.lang.String)
示例:
FileInputStream in = openFileInput("data.gds");
InputStreamReader inputStreamReader = new InputStreamReader(in);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
//Convert each line to your int
int value = Integer.parseInt(line);
}
当然,为了实现这一点,您需要使用OutputStreamWriter将您的整数(每行一个)写入文件:
http://developer.android.com/reference/java/io/OutputStreamWriter.html
逐行写一个int的例子:
writer = new OutputStreamWriter(fou);
int blankval = 1;
writer.write(String.valueOf(blankval)+"\n");
int targetval = 0;
writer.write(String.valueOf(targetval)+"\n");
writer.close();
或类似的......