例如:现在我的项目文件夹Resource/book/下有:
chapter1.txt
chapter2.txt
chapter3.txt
chapter4.txt
chapter5.txt
...怎么把这些文件读进来?
chapter1.txt
chapter2.txt
chapter3.txt
chapter4.txt
chapter5.txt
...怎么把这些文件读进来?
解决方案 »
- 关于googlemap apikey 的问题
- apt-get install libgl1-mesa-dev问题
- android Gallery getIntent().getData
- 请教一个问题,我怎么通过wifi让android客户端对PC的服务器端数据库进行操作?
- 请教关于文件上传的问题
- Android自动完成输入框 获取选择了第几项
- Failed to install ddf.apk on device 'emulator-5554!
- 问一下,这个表白代码,怎么改里面的名字?谢谢了!!
- 用android怎么做一个定时拨号程序?望大神们不吝赐教!
- 求助求助,报错start called in state 0,求指错改正,可能是mediaplayer中prepare问题,但是不知道怎么改?
- 已经baidu和google过了,但RTC_WAKEUP和RTC的区别还是不知道
- android 应用中,如何做到地图的离线下载?
String showtxt="帮助文件丢失!";
InputStream is;
try {
is = getAssets().open("readme.txt");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
showtxt = new String(buffer, "GB2312");
} catch (IOException e) {
throw new RuntimeException(e);
}
new CustomDialog(MainActivity.this,
CustomDialog.DIALOG_DETAILS,"关于",showtxt).show();
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用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();
}
}
当然如果你要得到内存流的话也可以直接返回内存流!