android:我如何使用内部存储保存和加载和int值

时间:2014-06-08 19:03:44

标签: android save int storage internal

我正在寻找一种在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

2 个答案:

答案 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();

或类似的......