0

首先,我不想写信给 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 上编写和读取文件的教程,并且我相信我非常密切地关注它们,所以我不确定为什么这段代码不能成功运行。我很感激任何帮助!

4

2 回答 2

2

您不应该File直接使用该类。用于Activity.getCacheDir()获取特定于您的应用程序的缓存目录。然后用于new File(cachedir, "filename.tmp")创建文件。

于 2010-12-12T21:44:19.797 回答
1

首选项和 SQLLite 都允许您在不管理自己的文件的情况下拥有持久数据。

要使用共享首选项,您可以从上下文中获取它,然后像这样编辑值

mySharedPreferences = context.getSharedPreferences("DatabaseNameWhateverYouWant", 0);
mySharedPreferences.getEditor().putString("MyPreferenceName", "Value").commit();

获得偏好

mySharedPreferences.getString("MyPreferenceName", "DefaultValue");

这确实是进行基本首选项的最简单方法,比创建文件要容易得多。不仅支持字符串,大多数基本数据类型都可以添加到 Preferences 类中。

于 2010-12-12T22:27:26.607 回答