标签:ref log 包名 data 1.4 缓存 return 1.2 title
全局的环境对象,提供了很多方便的操作,帮助我们快速的获取数据,进行一些常规的操作。
getFilesDir()等同于/data/data/包名/files/
File file = new File(getFilesDir(),"info.txt");
getCacheDir()等同于/data/data/包名/cache/
File file = new File(getCacheDir(),"info.txt");
1.通过Context下的openFileOutput()获取输出流
FileOutputStream fos = this.openFileOutput("info.txt", MODE_PRIVATE);
这两个方法第一个参数为文件名,第二个参数为模式(私有、可读、可写、可读可写),该方法保存文件的目录:/data/data/<package name>/files。
其中权限包含四种:
2.通过Context下的openFileInput()获取输入流
FileInputStream fis = this.openFileInput("info.txt");
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
a) 先在Activity里面调用getAssets() 来获取AssetManager引用。
b) 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
c) 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
d) 调用AssetManager.close() 关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作:
以下为raw文件中读取:
public String getFromRaw(){
try {
InputStreamReader inputReader = new InputStreamReader(getResources().openRawResource(R.raw.test1));
BufferedReader bufReader = new BufferedReader(inputReader);
String line="";
String Result="";
while((line = bufReader.readLine()) != null)
Result += line;
return Result;
} catch (Exception e) {
e.printStackTrace();
}
}
以下为assets文件中读取:
public String getFromAssets(String fileName){
try {
InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName) );
BufferedReader bufReader = new BufferedReader(inputReader);
String line="";
String Result="";
while((line = bufReader.readLine()) != null)
Result += line;
return Result;
} catch (Exception e) {
e.printStackTrace();
}
}
待续
标签:ref log 包名 data 1.4 缓存 return 1.2 title
原文地址:http://www.cnblogs.com/pengjingya/p/5507758.html