0

ファイルを内部ストレージに保存したい。次のステップはファイルを読みたい。ファイルはFileOutputStreamを使用して内部ストレージに作成されますが、ファイルの読み取りに問題があります。

内部ストレージにアクセスしてファイルを読み取ることはできますか?

4

4 に答える 4

7

はい、内部ストレージからファイルを読み取ることができます。

ファイルの書き込みにはこれを使用できます

String FILENAME = "hello_file";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

ファイルを読み取るには、以下を使用します。

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

呼び出しopenFileInput()て、読み取るファイルの名前を渡します。これはを返しますFileInputStream。。を使用してファイルからバイトを読み取りますread()。次に、でストリームを閉じますclose()

コード:

StringBuilder sb = new StringBuilder();
try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line).append("\n");
        }
        is.close();
    } catch(OutOfMemoryError om) {
        om.printStackTrace();
    } catch(Exception ex) {
        ex.printStackTrace();
    }
    String result = sb.toString();

このリンクを参照してください

于 2012-06-02T06:35:09.143 に答える
6

内部ストレージからテキストファイルを読み書きすることが可能です。内部ストレージの場合、ファイルを直接作成する必要はありません。FileOutputStreamファイルへの書き込みに使用します。FileOutputStream 内部ストレージにファイルを自動的に作成します。パスを指定する必要はありません。ファイル名を指定するだけで済みます。ここでファイルを読み取るには、を使用しますFileInputStream。内部ストレージからファイルを自動的に読み取ります。以下に、ファイルの読み取りと書き込みを行うためのコードを示します。

ファイルを書き込むためのコード

String FILENAME ="textFile.txt";
String strMsgToSave = "VIVEKANAND";
FileOutputStream fos;
try
{
    fos = context.openFileOutput( FILENAME, Context.MODE_PRIVATE );
    try
    {
        fos.write( strMsgToSave.getBytes() );
        fos.close();

    }
    catch (IOException e)
    {
        e.printStackTrace();
    }

}
catch (FileNotFoundException e)
{
    e.printStackTrace();
}

}

ファイルを読み取るためのコード

int ch;
StringBuffer fileContent = new StringBuffer("");
FileInputStream fis;
try {
    fis = context.openFileInput( FILENAME );
    try {
        while( (ch = fis.read()) != -1)
            fileContent.append((char)ch);
    } catch (IOException e) {
        e.printStackTrace();
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
}

String data = new String(fileContent);
于 2012-06-12T07:22:55.987 に答える
1

このスレッドはまさにあなたが探しているもののようです内部プライベートストレージへのファイルの読み取り/書き込み

いくつかの良いヒントがあります。

于 2012-06-02T06:36:11.313 に答える
0

はいぜったいに、

これを読むhttp://developer.android.com/guide/topics/data/data-storage.html#filesInternal

String FILENAME = "hello_file";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());

fos.close();
于 2012-06-02T06:43:35.577 に答える