この投稿から:
正しい方法:
- 目的のディレクトリのファイルを作成します (例: File path=new
- File(getFilesDir(),"myfolder");)
- その File で mkdirs() を呼び出して、ディレクトリが存在しない場合は作成します
- 出力ファイル用のファイルを作成します (例: File mypath=new File(path,"myfile.txt");)
- 標準の Java I/O を使用してそのファイルに書き込みます (たとえば、new BufferedWriter(new FileWriter(mypath)) を使用)。
楽しみ。
また、私が使用する公開ファイルを作成するには:
/**
* Context.MODE_PRIVATE will create the file (or replace a file of the same name) and make it private to your application.
* Other modes available are: MODE_APPEND, MODE_WORLD_READABLE, and MODE_WORLD_WRITEABLE.
*/
public static void createInternalFile(Context theContext, String theFileName, byte[] theData, int theMode)
{
FileOutputStream fos = null;
try {
fos = theContext.openFileOutput(theFileName, theMode);
fos.write(theData);
fos.close();
} catch (FileNotFoundException e) {
Log.e(TAG, "[createInternalFile]" + e.getMessage());
} catch (IOException e) {
Log.e(TAG, "[createInternalFile]" + e.getMessage());
}
}
theMode を MODE_WORLD_WRITEABLE または MODE_WORLD_READABLE に設定するだけです (これらは API レベル 17 から廃止されることに注意してください)。
使用することもできますtheContext.getDir();
が、ドキュメントの内容に注意してください:
アプリケーションが独自のカスタム データ ファイルを配置できる新しいディレクトリを取得し、必要に応じて作成します。返された File オブジェクトを使用して、このディレクトリ内のファイルを作成およびアクセスできます。File オブジェクトを介して作成されたファイルは、独自のアプリケーションからのみアクセスできることに注意してください。個々のファイルではなく、ディレクトリ全体のモードのみを設定できます。
幸運をお祈りしています。