在android中资源文件的存放和读取

在android中资源文件的存放和读取

  1. 在main文件下创建一个asset文件夹,将所需的文件存放其中。
  2. 利用Context.getAssets()来获取一个AssetManager对象,该对象会与asset文件夹相关联,通过open(filePath),可以获取对应路径的文件的inputStream.

源码展示
context.getAssets()

/**
 * Returns an AssetManager instance for the application's package.  返回应用程序包的AssetManager实例。
 * <p>
 * <strong>Note:</strong> Implementations of this method should return
 * an AssetManager instance that is consistent with the Resources instance
 * returned by {@link #getResources()}. For example, they should share the
 * same {@link Configuration} object.
 *
 * @return an AssetManager instance for the application's package
 * @see #getResources()
 */
public abstract AssetManager getAssets();

InputStream stream = manager.open(filePath);

/**
* Open an asset using ACCESS_STREAMING mode.  This provides access to
 * files that have been bundled with an application as assets -- that is,
 * files placed in to the "assets" directory.
 * 使用ACCESS_STREAMING模式打开资产。
这提供了访问与应用程序捆绑在一起的文件作为资产-即,文
件放置在“资产”目录中。
 * 
 * @param fileName The name of the asset to open.  This name can be hierarchical.
 * 
 * @see #open(String, int)
 * @see #list
 */
public @NonNull InputStream open(@NonNull String fileName) throws IOException {
    return open(fileName, ACCESS_STREAMING);
}

将资源文件的内容读入到对象中

public static String getJsonFromAssets (Context context, String filePath){
    StringBuilder stringBuilder = new StringBuilder();
    AssetManager manager = context.getAssets();
    try {
        InputStream stream = manager.open(filePath);
        BufferedReader reader= new BufferedReader(new InputStreamReader(stream));
        String data;
        while ((data = reader.readLine())!= null){
            stringBuilder.append(data);
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return stringBuilder.toString();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值