ファイルを内部ストレージに保存したい。次のステップはファイルを読みたい。ファイルはFileOutputStreamを使用して内部ストレージに作成されますが、ファイルの読み取りに問題があります。
内部ストレージにアクセスしてファイルを読み取ることはできますか?
ファイルを内部ストレージに保存したい。次のステップはファイルを読みたい。ファイルはFileOutputStreamを使用して内部ストレージに作成されますが、ファイルの読み取りに問題があります。
内部ストレージにアクセスしてファイルを読み取ることはできますか?
はい、内部ストレージからファイルを読み取ることができます。
ファイルの書き込みにはこれを使用できます
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();
内部ストレージからテキストファイルを読み書きすることが可能です。内部ストレージの場合、ファイルを直接作成する必要はありません。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);
このスレッドはまさにあなたが探しているもののようです内部プライベートストレージへのファイルの読み取り/書き込み
いくつかの良いヒントがあります。
はいぜったいに、
これを読む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();