androidassets读取
① android 怎样读取assets文件下word文件
AndroidStudio中放置assets文件夹需要手动创建,我以存放一张图片为例说明。新建一个项目,切换到当前的Mole,在main文件夹下新建一个名为“assets”文件夹如下图:复制资源(这里以图片为例),粘贴到“assets”文件夹下,如下图:在AndroidStudio里以输入流的方式读取资源,部分代码如下://从assets中读取图片,其它资源读取方式类似AssetManager am = res.getAssets();try { is = am.open("pic_assets.png");} catch (IOException e) { e.printStackTrace();}Bitmap bmp = BitmapFactory.decodeStream(is);
② android读取assets下的文件需要权限吗
AndroidStudio中放置assets文件夹需要手动创建,我以存放一张图片为例说明。新建一个项目,切换到当前的Mole,在main文件夹下新建一个名为“assets”文件夹如下图:复制资源(这里以图片为例),粘贴到“assets”文件夹下,如下图:在AndroidStudio里以
输入流
的方式读取资源,部分代码如下://从assets中读取图片,其它资源读取方式类似AssetManager
am
=
res.getAssets();try
{
is
=
am.open("pic_assets.png");}
catch
(IOException
e)
{
e.printStackTrace();}Bitmap
bmp
=
BitmapFactory.decodeStream(is);
③ android studio怎么读取assets
android studio读取assets资源,其实适合eclipse一样的,只需要执行以下代码:
private String[] names={"songhuiqiao.jpg","zhangzetian.jpg","songqian.jpg","hangxiaozhu.jpg","jingtian.jpg"
,"liuyifei.jpg","kangyikun.jpg","dengziqi.jpg"};
声明完之后,就可以读取了,是用下面的代码完成的
//获取Assets目录下的文件
is=context.getClass().getClassLoader().getResourceAsStream("assets/"+names[i]);
下面是我的这边的截图:
④ android 怎么读取assets文件
getResources().getAssets().open(fileName)
上面红色的都是读取的函数
⑤ 如何获取android assets文件下的mp4
assets文件夹是android程序中存放相关外部文件的一个目录,Android官方提供了相应的方法去访问该文件夹中的内容,故此我们并不需要进行相关的路径判断等代码操作,直接调用相关方法打开文件并得到一个字节输入流(InputStream);
然后通过相应的字符编码方式读取字节解码为字符输入流(InputStreamReader);再通过BufferReader对字符输入流读取文本并将字符存入缓冲区以便能提供字符、数组和线段的高效读取;最后我们就能逐行对文件内容进行读取了;
public class MainActivity extends Activity {
⑥ 读取android中assets中的txt文档。乱码怎么办
一般为两种编码格式
GBK或者UTF8。乱码是因为你项目的编码与.txt中的编码不同
Result
=
new
String(Result.getBytes("GBK"),
"ISO_8859_1");
你可以参考上面这个函数,对内容做编码转换。
⑦ android加载assets中的json格式文件
assets资源目录一般用于存放html文件、数据库文件、javascript文件,assets目录下的文件不会在R.java自动生成ID,所以读取assets目录下的文件必须指定文件的路径
在代码中使用AssertManager获取文件的输入流读取
AssetManagerassetManager=context.getAssets();
try{
InputStreamis=assetManager.open("json.data");
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
StringBufferstringBuffer=newStringBuffer();
Stringstr=null;
while((str=br.readLine())!=null){
stringBuffer.append(str);
}
}catch(IOExceptione){
e.printStackTrace();
}
也可以把json文件放在res的raw目录下
res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;
但是需要注意的是assets允许有目录结构,而raw不行
读取方法大同小异
try{
InputStreamis=getResources().openRawResource(R.id.file);
BufferedReaderbr=newBufferedReader(newInputStreamReader(is));
StringBufferstringBuffer=newStringBuffer();
Stringstr=null;
while((str=br.readLine())!=null){
stringBuffer.append(str);
}
}catch(IOExceptione){
e.printStackTrace();
}
⑧ 开发Android项目,写单元测试类时,怎样读取assets中的文件
InputStream inStream = context.getAssets().open(fileName);这个context指service或者activity对象,如果是在service或者activity中,就直接调getAssets()就好了. fileName是相对路径,如果你的文件就是放在assets目录下,就直接写文件名比如text.txt就行了,如果是在assets的子目录下,就需要将子目录的路径也加上.
⑨ 读取android中assets中的txt文档。乱码怎么办
一. 前言
最近自己写一个程序,需要把文本文件里面的一些数据在程序第一次启动的时候初始化到数据库中去。所以就涉及到了读取文件的操作。在我们android项目里面,有个assets文件夹,就是用来存储资源文件的,可以通过AssetManager访问。本来以为这是一件三只手指抓田螺--十拿九稳的事情,结果还是花了自己一个小时来调试它,就是读取文件出现了乱码。出现这种东西 "��1��0��0��0��1��",有些问号在里面。。
二. 解决办法
后来在网上找了些资料看了下,说是要把文本文件保存成UTF-8类型才可以。试了下,果然ok..下面分享下自己这块功能的代码
三. 代码
1. 文本文件内容格式:
复制内容到剪贴板
代码:
13076-5 2 0 9 5 0 1
13075-9 5 6 8 4 3 3
13074-2 0 4 0 2 8 8
13073-8 8 6 6 0 7 8
13072-2 0 8 8 6 3 5
大概就是这种格式,我需要对它们每行都进行解析,比如第一行解析成 13076 5 2 0 9 5 0 1 ,也就是8个数字,然后存入数据库里面分别对应的8列
2. 主要代码
这里的话,自己新建了一个MyDbOpenHelper,然后重写了onCreate方法,这个方法会在我们第一次调用db.getReadDatabase()或者getWriteDataBase()方法时调用,而且只会调用一次。就是程序第一次启动的时候。
ok..在onCreate方法里面,主要代码的功能已经注释,大家可以自己看。。private static class MyDbOpenHelper extends SQLiteOpenHelper{
private Context c;
public MyDbOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
c = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("Sandy", "onCreate database");
//execute when user invoke getReadDatabase/getWriteDatabase
//当用户第一次程序的时候,我们会调用这里,创建我们的表。
db.execSQL("CREATE TABLE " + RAW_DATA_TABLE + " ("
+ RawData._ID + " INTEGER PRIMARY KEY,"
+ RawData.COLUMN_ISSUE + " TEXT,"
+ RawData.COLUMN_NUMBER_ONE + " TEXT,"
+ RawData.COLUMN_NUMBER_TWO + " TEXT , "
+ RawData.COLUMN_NUMBER_THREE + " TEXT,"
+ RawData.COLUMN_NUMBER_FOUR + " TEXT,"
+ RawData.COLUMN_NUMBER_FIVE + " TEXT,"
+ RawData.COLUMN_NUMBER_SIX + " TEXT,"
+ RawData.COLUMN_NUMBER_SEVEN + " TEXT"
+ ");");
ContentValues cv = new ContentValues();
//声明解析文件的文件流对象
InputStream in = null;
BufferedReader reader = null;
try {
//通过AssetManager读取文件
in = c.getResources().getAssets().open("qixingcai-data.txt", AssetManager.ACCESS_BUFFER);
//构造BufferedReader对象,以便逐行读取
reader = new BufferedReader(new InputStreamReader(in));
String line ;
//逐行读取文件内容,读取一行,就把这一行数据进行拆分,然后保存进数据库
while((line = reader.readLine()) != null){
cv.clear();
//根据分割符"-"和" "进行数据拆分,然后把得到的数据放到ContentValues对象中
String[] issueAndNumber = line.split("-");
String[] numbers = issueAndNumber[1].split(" ");
cv.put(RawData.COLUMN_ISSUE, issueAndNumber[0]);
cv.put(RawData.COLUMN_NUMBER_ONE, numbers[0]);
cv.put(RawData.COLUMN_NUMBER_TWO, numbers[1]);
cv.put(RawData.COLUMN_NUMBER_THREE, numbers[2]);
cv.put(RawData.COLUMN_NUMBER_FOUR, numbers[3]);
cv.put(RawData.COLUMN_NUMBER_FIVE, numbers[4]);
cv.put(RawData.COLUMN_NUMBER_SIX, numbers[5]);
cv.put(RawData.COLUMN_NUMBER_SEVEN, numbers[6]);
//插入数据库
db.insert(RAW_DATA_TABLE, "_id", cv);
Log.d("Sandy", "issueAndNumber[0]" + issueAndNumber[0]
+ "one: " + numbers[0] + " all: " + issueAndNumber[1]);
}
} catch (IOException e) {
Log.d("Sandy", "", e);
}finally{
if (in != null){
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (reader != null){
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}