Android在assets文件夾中存放資源文件及從assets目錄下獲取指定資源文件的string

一、前言

     assets是Android資源文件夾,該文件夾可以存放的位置不同,獲取assets內容的方式也就不同。文件夾創建在app/src/main/assets目錄下,在此assets文件夾內可以存放一些資源文件,例如".json"的json文件、".jpg"的圖片文件及".html"的webview動態加載。本文就單講assets文件夾在app/src/main/assets目錄下的".json"的json文件創建和獲取指定assets資源內的string文本。

二、源碼細說

1、在app/src/main/目錄下創建assets文件夾

assets文件位置
assets文件夾位置

 2、創建goods.json資源文件

[
  {
    "name": "筷"
  },
  {
    "name": "碗"
  },
  {
    "name": "碟"
  },
  {
    "name": "杯"
  },
  {
    "name": "勺"
  }
]

3、簡易封裝從assets文件夾中獲取string文本的工具類KitIOUtil.java文件

public class KitIOUtil {
   
    public static String getStringFromAssets(Context context, String fileName) {
        String str = "";
        try {
            InputStreamReader inputStreamReader = new InputStreamReader(context.getAssets().open(fileName), "UTF-8");
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            String line;
            StringBuilder stringBuilder = new StringBuilder();
            while ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line);
            }
            bufferedReader.close();
            inputStreamReader.close();
            str = stringBuilder.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }
}

4、創建一個對應goods.json文件的bean的java文件

public class CleanGoods {
    /**
     * name : 筷
     */

    public String name;
    public boolean isCheck;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

5、調用已封裝好的工具類,從assets文件夾中獲取指定的string文本

 private List<CleanGoods> datas;

 datas = new ArrayList<>();
 String jsonData = KitIOUtil.getStringFromAssets(this, "goods.json");

 

三、有疑問請留言

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章