2 myq 26 myq_26 于 2012.09.21 10:19 提问

如何读出assets的资源
public class Utils {

    public static List<Message> getMesages() {

//File file = new File("file:///android_asset/helloworld.txtv");

AssetManager assetManager = getAssets();
InputStream ims assetManager.open("helloworld.txt");

     }
}

想读出assets文件夹下的资源。当使用File时显示fileNotFound异常,但是使用AssetManager getAssets()方法时,又不能识别。请问有什么方法可以解决这个问题呢?

3个回答

android_baiyuchuan
android_baiyuchuan   2012.09.21 11:07
已采纳
public void getGetAssets(){
AssetManager assetManager= context.getAssets();
Log.e(TAG, assetManager.getLocales()+"");
try {
InputStream inputStream =   assetManager.open("atest");
inputStream.read();
InputStreamReader isr = new InputStreamReader(inputStream);  
BufferedReader br = new BufferedReader(isr);  
Log.i(TAG,"inputStream :" + inputStream.read());
Log.i(TAG,"BufferedReader :" +br);
Log.i(TAG,"BufferedReader :" +br.toString());
Log.i(TAG,"BufferedReader :" +new String(br.readLine()));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}

你只要保证你的assets文件下有这个“atest”文件就可以了,我试了不会报错的。我的测试文件内容就是aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

09-21 03:04:30.626: E/bai(833): [Ljava.lang.String;@41072288

09-21 03:04:30.626: I/bai(833): inputStream :97
09-21 03:04:30.635: I/bai(833): BufferedReader :java.io.BufferedReader@41075e98
09-21 03:04:30.635: I/bai(833): BufferedReader :java.io.BufferedReader@41075e98
09-21 03:04:30.635: I/bai(833): BufferedReader :aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

myq_26
myq_26 哦,是的,我忽略了改文件名了。
5 年多之前 回复
android_baiyuchuan
android_baiyuchuan 这个atest文件只是作为测试用的·,你不是要取出assets文件夹下面的文件么?只要你使用的时候把这个文件名改为你要找的文件不就可以了
5 年多之前 回复
myq_26
myq_26 谢谢你的回答,我的assets文件下面没有atest这个文件,也没有用过Log调用这个方法,使我眼前一亮!
5 年多之前 回复
curie_87
curie_87   2012.09.21 11:43
public String ReadFromfile(String fileName, Context context) {
    StringBuilder ReturnString = new StringBuilder();
    InputStream fIn = null;
    InputStreamReader isr = null;
    BufferedReader input = null;
    try {
        fIn = context.getResources().getAssets()
                .open(fileName, context.MODE_WORLD_READABLE);
        isr = new InputStreamReader(fIn);
        input = new BufferedReader(isr);
        String line = "";
        while ((line = input.readLine()) != null) {
            ReturnString.append(line);
        }
    } catch (Exception e) {
        e.getMessage();
    } finally {
        try {
            if (isr != null)
                isr.close();
            if (fIn != null)
                fIn.close();
            if (input != null)
                input.close();
        } catch (Exception e2) {
            e2.getMessage();
        }
    }
    return ReturnString.toString();
}
zlQQhs
zlQQhs   2013.02.26 14:25

getAssets() 只能在 Activity 里用
http://blog.csdn.net/zlqqhs/article/details/8596140
解析数据的详细步骤

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!