首页编程assetmanager 安卓json数据保存到assets

assetmanager 安卓json数据保存到assets

编程之家2023-11-0778次浏览

无论是assetmanager还是安卓json数据保存到assets,它们都是当前热门话题。如果你对它们感到好奇,那么请跟随小编的脚步,一起来揭开它们的秘密吧!

assetmanager 安卓json数据保存到assets

Android 在assets的子文件夹如何读

assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。

1.先在Activity里面调用getAssets()来获取AssetManager引用。

2.再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。

3.然后就是用已经open file的inputStream读取文件,读取完成后记得inputStream.close()。

4.调用AssetManager.close()关闭AssetManager。

需要注意的是,来自Resources和Assets中的文件只可以读取而不能进行写的操作

assetmanager 安卓json数据保存到assets

代码

publicStringgetFromAssets(StringfileName){

try{

InputStreamReaderinputReader=newInputStreamReader(getResources().getAssets().open(fileName));

BufferedReaderbufReader=newBufferedReader(inputReader);

Stringline="";

assetmanager 安卓json数据保存到assets

StringResult="";

while((line=bufReader.readLine())!=null)

Result+=line;

returnResult;

}catch(Exceptione){

e.printStackTrace();

}

}

如何得到android项目assets目录中的内容

assets文件夹是android程序中存放相关外部文件的一个目录,Android官方提供了相应的方法去访问该文件夹中的内容,故此我们并不需要进行相关的路径判断等代码操作,直接调用相关方法打开文件并得到一个字节输入流(InputStream);

然后通过相应的字符编码方式读取字节解码为字符输入流(InputStreamReader);再通过BufferReader对字符输入流读取文本并将字符存入缓冲区以便能提供字符、数组和线段的高效读取;最后我们就能逐行对文件内容进行读取了;

public class MainActivity extends Activity{

@Override

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

try{

InputStream inputStream= getResources().getAssets().open("info.txt");

InputStreamReader inputStreamReader= new InputStreamReader(inputStream,"UTF-8");

BufferedReader bufferedReader= new BufferedReader(inputStreamReader);

String info="";

while((info= bufferedReader.readLine())!= null){

Log.i("fff", info);

Toast.makeText(MainActivity.this, info, 1000).show();

}

} catch(IOException e){

e.printStackTrace();

}

}

}

Android中asset文件夹和raw文件夹区别是什么

【答案】:res/raw和assets的相同点:

两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

res/raw和assets的不同点:

1)res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即 R.raw.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。

2)res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

3)读取文件资源举例:

读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

InputStream is= getResources().openRawResource(R.raw.filename);

读取assets下的文件资源,通过以下方式获取输入流来进行写操作

AssetManager am= null;

am= getAssets();

InputStream is= am.open("filename");

安卓json数据保存到assets

新建assets文件夹,并将json文件复制到此文件夹中

在main文件夹下新建assets文件,然后再assets文件中新建namelist.json文件夹,将json数据复制到test.json文件中。

2、访问json文件

try{

AssetManager assetManager= getAssets();//获得assets资源管理器(assets中的文件无法直接访问,可以使用AssetManager访问)

InputStreamReader inputStreamReader= new InputStreamReader(assetManager.open("namelist.json"),"UTF-8");//使用IO流读取json文件内容

BufferedReader br= new BufferedReader(inputStreamReader);

String line;

StringBuilder builder= new StringBuilder();

while((line= br.readLine())!=null){

builder.append(line);

}

br.close();

inputStreamReader.close();

JSONObject testJson= new JSONObject(builder.toString());//从builder中读取了json中的数据。

//直接传入JSONObject来构造一个实例

JSONArray array= testJson.getJSONArray("nameList");

Log.e("nameList",array.toString());

for(int i= 0;i

strings[i]= array.getString(i);

}

} catch(IOException e){

e.printStackTrace();

} catch(JSONException e){

文章分享到这里,希望我们关于assetmanager的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。

博客推广方法?有哪些博客推广的方法和途径正则表达式中文(正则表达式如何只匹配一个中文字符)