0

我试图在http://developer.android.com/guide/topics/data/data-storage.html中实现“使用内部存储”部分

我想我第一部分做得对,将字符串保存到文件中,但是以后如何读取字符串?

她是我的代码的样子:

String FILEPROFILE = "profileinfo";
FileOutputStream fos = null;
BufferedInputStream fis = null;
OutputStream out = null;


          try {
            fos = openFileOutput(FILEPROFILE, Context.MODE_PRIVATE);
            fos.write(profile.toString().getBytes());
            fos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



        try {
            fis = new BufferedInputStream(new FileInputStream(FILEPROFILE));
            Log.d("UsersThoughts", "BufferedInputStream is " + fis.read());
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

编辑:我把它改成这样:

 try {
            fis = openFileInput(FILEPROFILE);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            Log.d("UsersThoughts", "This blah object read " + fis.read());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            Log.e("UsersThoughts", "This blah object trying to read: " + e.toString());
        }

          try{
              Log.d("UsersThoughts", "This blah object toString " + fis.toString());
          } catch (Exception e)
          {
                e.printStackTrace();
                Log.e("UsersThoughts", "This blah object trying to make string: " + e.toString());
          }

logcat 中的输出如下所示:

 11-15 18:41:34.862: D/UsersThoughts(7777): This blah object read123
 11-15 18:41:34.862: D/UsersThoughts(7777): This blah object toString java.io.FileInputStream@46356128

看起来它正在以咬的形式读取文件....如何取回我复制的文本?

4

2 回答 2

0

我从您引用的同一来源引用此内容:

从内部存储读取文件:

  1. 调用 openFileInput() 并将要读取的文件的名称传递给它。这将返回一个 FileInputStream。

  2. 使用 read() 从文件中读取字节。

  3. 然后用 close() 关闭流。

编辑:例如,

FileInputStream fis = openFileInput("FILENAME");
BufferedInputStream blah = new BufferedInputStream(fis);

blah然后用这个对象做你之前做的任何事情。

于 2012-11-15T17:23:14.917 回答
0

按照我在此处给出的答案将字符串存储到 Android 中的文件:如果用户离线,我应该将数据存储在 sqlite 中吗?

于 2012-11-15T18:44:12.923 回答