Context提供了两个方法打开本应用的数据文件夹里的文件I/O流:
- FileInputStream openFileInput(String name)打开name文件对应输入流
- FileOutputStream openFileOutput(String name,int mode)打开name对应输出流,mode跟SharedPreferences中的一样
两种方式,一种是在file文件中生成缓存,另一种是在cache文件中生成。
在file文件中:
case R.id.btn_write_cache://写缓存
try {
FileOutputStream outputStream=openFileOutput("hellocache",MODE_PRIVATE);
PrintWriter printWriter=new PrintWriter(new OutputStreamWriter(outputStream));
printWriter.write("你好,cache");
printWriter.flush();
printWriter.close();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
switch (v.getId()){
case R.id.btn_read_cache://读缓存
try {
FileInputStream is= openFileInput("hellocache");
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String line=br.readLine();
while (line!=null){
line=br.readLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
break;
在cache中生成缓存:
switch (v.getId()){
case R.id.btn_write_cache1:
File file=new File(getCacheDir(),"haha");//路径,名称
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
//2缓存存储
FileOutputStream outputStream=new FileOutputStream(file);//不一样
PrintWriter printWriter=new PrintWriter(new OutputStreamWriter(outputStream));
printWriter.write("你好,cache");
printWriter.flush();
printWriter.close();
outputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
生成的文件路径DDMS中data/data/包名