文字列のリストをファイルに保存したい。
一度だけ作成する必要があります。その後、プログラムで読み書きします。
私の質問は、ファイルシステムのどこにファイルを(手動で)作成して、読み取りと書き込みに最適にする必要があるかということです。
ありがとう。
アプリのディレクトリにファイルを作成して、アプリ以外の誰もファイルにアクセスできないようにすることができます
getApplicationContext().getFilesDir().getAbsolutePath();
またはSDカード
File externalStorage = Environment.getExternalStorageDirectory();
他の人にアクセスしてもらいたい場合、そしておそらくファイルが非常に大きい場合
ファイルを手動で作成する場合は、ルート化された電話を使用しているか、エミュレーターを使用していない限り、SDカードが唯一のオプションだと思います。
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
{
//SDcard is there
File f=new File("/sdcard/YOURFILE.txt");
if (!f.exists())
{
//File created only for first time
f.createNewFile();
//create inputstream and write it to your file
OutputStream out=new FileOutputStream(f);
byte buf[]=new byte[1024];
int len;
while((len=inputStream.read(buf))>0)
out.write(buf,0,len);
out.close();
inputStream.close();
System.out.println("\nData Written");
}
else { // read/ write SECOND TIME }
}
それは本当に依存します。
SDカードにファイルを作成する際の問題は、SDカードにアクセスするために特別な権限が必要になることです。アプリが自分だけのものなら、それは素晴らしいことです。Google Market Play(または最近では何と呼ばれているものでも)を通じて配布したい場合は、一部の人(私自身を含む)が許可を見て「Xを実行するアプリがYを実行するために許可を必要とするのはなぜですか?」と尋ねる傾向があることを知っておいてください。 "、そして時々それのためにアプリをインストールしません。
手動部分がアプリのユーザーによって行われる場合は、必ず、SDカードに保存してください。これは、標準の、root以外のユーザーがアクセスできる唯一の場所です。
ただし、一般的に言えば、データを保存するのに適した場所は/ data / data/packagenameです。詳細については、Androidのデータストレージを参照してください。
シャチャー
アセットフォルダにファイルを追加すると、新規インストール後に明らかになります