Android笔记(四十九) Android中的资源访问——asset
2024-10-21 11:48:10
1.文件读取方式
AssetManager.open(String filename),返回的是一个InputSteam类型的字节流,这里的filename必须是文件,而不能是文件夹,AssetManager打开资源文件的open方法是一个重载方法,可以添加一个打开方式的int参数,根据参数不同可做相应操作。
2.资源文件是可以存在文件夹以及子目录
public final String[]list(String path),返回当前目录下面的所有文件以及子目录的名称。可以通过递归遍历整个文件目录,实现所有资源文件的访问。
MainActivity.java
package cn.lixyz.iotest.activity; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import cn.lixyz.iotest.R;
import cn.lixyz.iotest.util.IOFile; public class MainActivity extends Activity implements OnClickListener { private Button bt_asset_read; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); findView(); bt_asset_read.setOnClickListener(this);
} public void findView() {
bt_asset_read = (Button) findViewById(R.id.bt_asset_read);
} @Override
public void onClick(View v) {
IOFile ioFile;
switch (v.getId()) {
case R.id.bt_asset_read:
ioFile = new IOFile(this);
ioFile.readFromAsset(this);
break;
}
} }
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="cn.lixyz.iotest.activity.MainActivity" > <Button
android:id="@+id/bt_asset_read"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ASSET目录读取" /> </LinearLayout>
IOFile.java
package cn.lixyz.iotest.util; import java.io.IOException;
import java.io.InputStream; import android.content.Context;
import android.content.res.AssetManager;
import android.util.Log; public class IOFile { Context mContext; public IOFile(Context context) {
mContext = context;
} // 读取asset目录中的内容
public void readFromAsset(Context context) {
try {
// 获取asset管理器
AssetManager assetManager = context.getAssets();
// 通过asset管理器获取asset目录下的子目录下的文件
String[] filesName = assetManager.list("txts"); // 循环读出文件内容
for (int i = 0; i < filesName.length; i++) { InputStream inputStream = assetManager.open("txts/" + filesName[i]);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
String str = new String(bytes); Log.d("TTTT", filesName[i] + "的内容是:" + str);
} } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
最新文章
- [Machine Learning &; Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族
- oracle数据库的安装、配置与无残留卸载
- vector 去重复
- Leetcode 290 Word Pattern STL
- linux type命令用法_转
- MarkdownPad2添加目录(输出为HTML时可用)
- 将数据库从普通文件系统迁移到ASM中
- android151 笔记
- 【LeetCode】Flatten Binary Tree to Linked List
- Swift - 产生不重复数字的随机数生成器
- css3圆角代码
- tomcat连接数设置
- Angular.js之内置过滤器学习笔记
- Jmeter读取文件中的值《一》
- mysql年初至今聚合
- 025 SSM简单搭建
- Android 混合式开发AppCan介绍
- IE11与Cognos怪谈
- TYVJ 2002 扑克牌 题解
- 洛谷——P1869 愚蠢的组合数
热门文章
- Learning Face Age Progression: A Pyramid Architecture of GANs-1-实现人脸老化
- UIView的intrinsicContentSize方法,在按钮中重写
- 【Python学习之六】文件操作
- 如何用Docker部署Spring Boot项目
- ProtoStuff无法反序列化Deprecated注解成员问题记录
- Oracle和Mysql中的字符串的拼接
- PostgreSql11.5源码安装
- 【转帖】处理器史话 | 这张漫画告诉你,为什么双核CPU能打败四核CPU?
- Apache Kafka工作流程| Kafka Pub-Sub Messaging
- Java找N个数中最小的K个数,PriorityQueue和Arrays.sort()两种实现方法