有关在Android中保存/访问保存的文件的问题
好吧,我正在阅读很多有关在各种Android和异地文档/帮助站点中保存和访问实现的内容,但我仍然无法理解实现以及它的工作原理,所以我最后的手段是转向StackOverFlow(我正在自己的工作)
在这个问题上,我会听起来有点愚蠢和迟钝,因为我在制作应用程序时即时学习,所以请耐心等待(我已经标记了整个文档的部分内容,题):
首先,我看到要实现一个保存的文件,必须写(从android文档中获取):
//Declarations
String FILENAME = "hello_file";
String string = "hello world!";
//Meaning that FILENAME is to be saved as hello_file, and "hello world!" converts the string to bytes
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
在里面保存数据的任何函数(例如一个按钮),如下所示:
public void testButtonPressToSave() {
FileOutputStream testSaveFile = openFileOutput(SavedFile, Context.MODE_PRIVATE);
testSaveFile.write();
testSaveFile.close();
}
但是,当我将它实现到代码中时,Eclipse建议我在openFileOutput部分中使用try / catch异常,并将整个事件更改为:
public void testButtonPressToSave() {
FileOutputStream testSaveFile;
try {
testSaveFile = openFileOutput(SavedFile, Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
testSaveFile.write(testString.getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
testSaveFile.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
(问题)这是正常的吗? 如果我在另一个活动中使用我保存的文件,我该如何重用? 我是否将整个主要活动导入到小部件提供者类中?
另外,我完全理解:
1) FileOutputStream testSaveFile; and testSaveFile = openFileOutput(SavedFile, Context.MODE_PRIVATE);
将testSaveFile声明为FileOutputStream对象,并使用Context.MODE_PRIVATE将文件保存为只能由应用程序本身访问的文件(.txt?)。
和,
2) testSaveFile.close();
以某种方式结束流(但这非常直接,它只是关闭文件)
我真的不知道的部分是,我如何在SavedFile数据包中保存多个变量?
Android文档为我提供了FileOutputStream下可用的write()函数:
public void write (byte[] buffer, int offset, int byteCount)
public void write (byte[] buffer)
public void write (int oneByte)
这不正是我想要的,因为我需要流来保存多个变量,例如String和Integer []。
(问题)我如何将我想要的数据类型保存到SavedFile中?
我也读过关于序列化的内容,但我不确定如何实际将文件保存到我的应用程序中。 另外,我并不是非常有信心序列化在Dalvik VM(Android)上非常高效,因为我读过的大部分代码都是基于Java系统的。
还有一个捆绑android资源thingy,我不明白,但似乎是答案存储各种多个变量到一个包,然后解压他们在下一个活动,虽然我不明白我怎么能够实际上保存它成文件或其他东西。
好吧,我有很多观点,但如果有人能够回答这些问题,我会非常感激。 你不必提供答案,但非常感谢一个明确的解释(特别是围绕技术术语:S)
看起来我已经找到了一种更有效的方式来存储我的数据,通过Android中的SQLiteDatabase。 不管怎么说,还是要谢谢你!
链接地址: http://www.djcxy.com/p/90011.html上一篇: Questions about Saving/Accessing saved files in Android