android:如何使用内部存储器保存和加载和int值
我正在寻找一种在android中保存和加载数据的方法,我正在使用eclipse& 我根本不想使用SharedReference,所以请不要建议这样做 除此之外,我想我已经明白了,我已经这样做了:android:如何使用内部存储器保存和加载和int值,android,save,int,storage,internal,Android,Save,Int,Storage,Internal,我正在寻找一种在android中保存和加载数据的方法,我正在使用eclipse& 我根本不想使用SharedReference,所以请不要建议这样做 除此之外,我想我已经明白了,我已经这样做了: int blankval = 1; int targetval = 0; FileOutputStream fou = openFileOutput("data.gds", MODE_PRIVATE); fou.write(blankval); fou.write(targetval); fou.clo
int blankval = 1;
int targetval = 0;
FileOutputStream fou = openFileOutput("data.gds", MODE_PRIVATE);
fou.write(blankval);
fou.write(targetval);
fou.close();
虽然我不知道该怎么做,但我尝试了很多方法,所有这些都会使应用程序在执行时崩溃
我想将每个val加载回两个INT blankval和targetval,以便如果我这样做:
blankval = 5;
targetval = 7;
load();
load然后会将它们的值设置回0和1,SharedReferences将是一个不错的选择,但是如果你想避免这种情况,那么为什么不使用Android提供的SQLite数据库呢。我不得不建议你使用SharedReferences:,但无论如何 如果需要使用刚刚写入的值,则应使用openFileInput: 例如:
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将每行一个int写入文件:
逐行写入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();
或者类似的东西……SharedReferences是安全有效的,只是想知道为什么不使用它?如果有理由不使用它,它可能有助于确定实现您所需的最佳方式。您确实意识到共享引用只是使用保存到内部存储的XML文件,不是吗?为什么要重新发明轮子?我真正想要的是使用read来获取int值,我不喜欢SharedReferences,因为我想使用自己的文件格式,比如.gdsOK,第一点-FileOutputStream的writeint方法写入单字节8位带符号整数,而默认的Java int是32位带符号整数。只要您意识到这一点,并且可以进行补偿,即,您永远不需要保存任何小于-128或大于128的值,这就可以了。第二点,你说你已经尝试了很多东西,但是你没有给我们展示任何东西,所以我们只能猜测你做了什么。第三点-你说应用程序崩溃了,但你没有发布日志来显示崩溃时的堆栈跟踪。LOL-如果OP不想使用SharedReferences,那么SQLite DB真的是太过了。@Squonk是的,但是使用文件系统存储一些int值,我无法想象这样的编码:我该如何编写我的int?