访问assets中文件各种文件的方法

读取普通文件

   AssetManager assetManager = context.getResources().getAssets();
   InputStream inputStream = assetManager.open("assets://data.json");

webview访问html文件


   AssetManager assetManager = context.getResources().getAssets();
   InputStream inputStream = assetManager.open("file:///android_asset/test/page.html");

读取文件夹中的文件

   AssetManager assetManager = context.getResources().getAssets();
   //不需要加“assets”,注意!!
   InputStream inputStream = assetManager.open("abc/yan.txt");

遍历assets文件并写到sd卡

private void loadAssetsDirectory(String dir) {

        final String directory = dir;
        //过滤文件夹
        if (mUnavailableDir.contains(directory)) {
            return;
        }
        try {
            String[] fileList = mAssetManager.list(directory);
            for (String file : fileList) {
                String target;
                if (TextUtils.isEmpty(directory)) {
                    //如果是根目录,不加分隔符,否则"/companies/..."这种读不出来
                    target = file;
                } else {
                    //如果不是根目录,则加分隔符
                    target = directory + "/" + file;
                }
                //如果读到的是目录,则递归遍历
                if (!file.contains(".")) {

                    //递归遍历
                    loadAssetsDirectory(target);
                } else {
                    //如果是文件,则写到sd卡
                    InputStream inputStream = mAssetManager.open(target);
                    //写文件
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
            mLoadSuccessed = false;
        }
    }

你可能感兴趣的:(访问assets中文件各种文件的方法)