首先,我不打算写信给SDCard。我想将一些信息写入在使用应用程序之间持续存在的文件中。它本质上是一个文件来保存特定用户的收藏夹。这是代码的样子:
try {
File file = new File("favorites.txt");
if (file.exists()) {
Log.d(TAG, "File does exist.");
fis = new FileInputStream(file);
br = new BufferedReader(new InputStreamReader(fis));
}
else {
Log.d(TAG, "File does not exist.");
return favDests;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
运行此代码时,我们总是得到“文件不存在”。我们的DDMS日志中的消息。
我们也试过以下代码无济于事:
try {
File file = new File(GoLincoln.FAV_DEST_FILE);
fis = new FileInputStream(file);
br = new BufferedReader(new InputStreamReader(fis));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
这是导致FileNotFoundException的第二部分代码。
我已经阅读了多篇关于在Android上编写和阅读文件的教程,我相信我非常密切地关注它们,所以我不确定为什么这段代码无法成功运行。我感谢任何帮助!
答案 0 :(得分:2)
您不应直接使用File
课程。使用Activity.getCacheDir()
获取特定于您的应用程序的缓存目录。然后使用new File(cachedir, "filename.tmp")
创建文件。
答案 1 :(得分:1)
首选项和SQLLite都允许您拥有持久数据,而无需管理自己的文件。
要使用共享首选项,您可以从上下文中获取它,然后编辑像这样的值
mySharedPreferences = context.getSharedPreferences("DatabaseNameWhateverYouWant", 0);
mySharedPreferences.getEditor().putString("MyPreferenceName", "Value").commit();
获得偏好
mySharedPreferences.getString("MyPreferenceName", "DefaultValue");
这实际上是执行基本首选项的最简单方法,比执行文件要容易得多。支持更多字符串,大多数基本数据类型可以添加到Preferences类中。