Androidデータストレージ(二)Fileデータ内部ストレージ
Androidでは、デバイス自体のストレージデバイスまたは外部のストレージデバイスにデータを保存するためのファイルを作成できます.デフォルトでは、ファイルは異なるプログラム間で共有できません.アプリケーションがアンインストールされると、これらのファイルは削除されます.
二、Fileデータ内部記憶
1、アプリケーションのプライベートフォルダ(data/data/パッケージ名)にファイルを保存する
パッケージ名のフラグに基づいて作成されるフォルダなので、そのアプリケーションのプライベートフォルダと呼ばれます.このようなストレージには2つの方法があります.
1つ目の方法は、Javaプラットフォームの実装と同様に、data/data/パケット名パスに基づいてIOストリームを直接操作してデータを格納する.
第2の方法は、Contextが提供する方法を使用して直接操作することである.
1つ目の方法はJavaプラットフォームの下の基本と同じで、あまり言わないで、2つ目の方法を見てください.
①、内部メモリのプライベートフォルダにファイル書き込みデータを作成する:
1、ファイル名と操作モードによってopenFileoutput()メソッドを呼び出し、FileOutputStreamストリームを返す
2、write()メソッドを呼び出し、ファイルにデータを書き込む
3、close()メソッドを呼び出してストリームを閉じる
例:
String FILENAME = "hello_file";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
, :
Context.MODE_PRIVATE = 0 , , , , , 。 Context.MODE_APPEND
Context.MODE_APPEND = 32768 , , 。
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
②、 :
1、 openFileInput() , , FileInputStream
2、 read()
3、 close()
:
public class InteralFile_Activity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
// ,
FileOutputStream outputStream=openFileOutput("test.txt", MODE_PRIVATE);
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(outputStream));
writer.write("12123");
writer.close();
//
FileInputStream inputStream=openFileInput("test.txt");
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
String line=reader.readLine();
Log.i("Test", line);
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
③、 Context :
openFileInput openFileOutout :
File Explorer / data /data / /files /
Java IO , , Android 。 , 。
Android , :
1、getFilesDir()
, data /data / /files
, :
File file = new File("/data/data/cn.itcast.action/files/itcast.txt");
2、getDir() ( )
3、deleteFile() ( files , )
4、fileList() , 。
④、
, , getCacheDir() , 。
,Android 。 , 。 , , 1 mb。 , 。
2、 Resources Assets
Android , , Assets 。 res/raw assets 。 APK 。
, , 。
①、res/raw :
Context
try {
InputStream inputStream1=getResources().openRawResource(R.raw.test);//
byte[] buffer1=new byte[256];
inputStream1.read(buffer1);
Log.i("Test", new String(buffer1).trim());
inputStream1.close();
} catch (IOException e) {
e.printStackTrace();
}
Uri
Uri uri=Uri.parse("android.resource://" + getPackageName() + "/"+R.raw.test);
②、assets :
try {
InputStream inputStream3=getAssets().open("test.txt");
byte[] buffer2=new byte[256];
inputStream3.read(buffer2);
Log.i("Test", new String(buffer2).trim());
inputStream3.close();
} catch (IOException e) {
e.printStackTrace();
}
AssetManager list ,
try {
String[] str=getAssets().list("");
for(String s:str) // ,
Log.i("Test", s);
} catch (IOException e) {
e.printStackTrace();
}