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

私がここで与えた答えに従って、Androidのファイルに文字列を保存します:ユーザーがオフラインの場合に備えて、データをsqliteに保存する必要がありますか?

于 2012-11-15T18:44:12.923 に答える
0

私はあなたが引用したのと同じ情報源からこれを引用しています:

内部ストレージからファイルを読み取るには:

  1. openFileInput()を呼び出し、読み取るファイルの名前を渡します。これにより、FileInputStreamが返されます。

  2. read()を使用してファイルからバイトを読み取ります。

  3. 次に、close()でストリームを閉じます。

編集:たとえば、

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

blah次に、このオブジェクトで以前に行っていたことをすべて実行します。

于 2012-11-15T17:23:14.917 に答える