首先要在资源目录Assets下存入文件
从asset中获取文件并读取数据(资源文件只能读不能写)
String fileName = "yan.txt"; //文件名字
String res="";
try{
InputStream in = getResources().getAssets().open(fileName);
// \Test\assets\yan.txt这里有这样的文件存在
int length = in.available();
byte [] buffer = new byte[length];
in.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
}catch(Exception e){
e.printStackTrace();
}
Assets下可允许存在子目录,保持原始的文件格式,需要用AssetManager以字节流的形式读取文件,不能写入
代码
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();
}
}
RAW与之不同,目录不能分包,只能写入原格式文件
也是通过流读取的,只是调用方法不同 getResources().getAssets().openRawResource(fileName)