读取raw下的文件

本文介绍了两种从Android应用中读取原始资源文件的方法。方法一使用InputStream直接读取整个文件内容;方法二采用循环方式逐段读取并解析文件内容为键值对,存储在Map中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


方法一(private Map<String, String> headlineValue)

	public String getFromRaw() {
		String result = "";
		try {
			InputStream in = context.getResources().openRawResource(R.raw.cc);
			int lenght = in.available();
			byte[] buffer = new byte[lenght];
			in.read(buffer);
			result = EncodingUtils.getString(buffer, "Encoding.UTF_8");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

方法二

public String read() {
		InputStream in = context.getResources().openRawResource(R.raw.cc);

		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int len = 0;
		try {
			while ((len = in.read(buffer)) != -1) {
				outStream.write(buffer, 0, len);

				// Log
				String log = new String(outStream.toByteArray());
				String[] row = log.split("\r\n");

				for (String element : row) {
					String[] str = element.split("=");
					for (int i = 0; i < str.length; i++) {
						if (i + 1 < str.length) {
							Log.i("TestRead", str[i]);
							headlineValue.put(str[i].trim(), str[i + 1].trim());
						}
					}

				}

				Log.i("TestRead", log);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		byte[] data = outStream.toByteArray();
		return new String(data);
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值