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();
}
}
}
}
}