2012年12月24日 星期一

Android res/raw and assets

android 在res/raw 與assets 
兩個在目錄下的文件在編譯成apk後會原封不動保存在 apk 裡面不會被編譯成為二進制。

 res/raw 
會被映射到R.java 使得java可透過R存取 (如 R.xx.xxxx )
但無法在底下在創建文件夾增加目錄
assets 
不會被R.java映射 但他可允許階層文件,也就是說可以在該文件夾底下再創多個目錄


 如何讀取? 
 1.讀取res/raw
 InputStream is = getResources().openRawResource(R.id.filename);

 2.讀取assets
 AssetManager am = context.getAssets(); InputStream is = am.open("filename");

關於SD卡讀取
AndroidManifast.xml  新增用戶權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


//判斷SD卡是否存在
if(!Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED) ){
try {
//取得SD卡路徑
File SDCardpath = Environment.getExternalStorageDirectory();
File myDataPath = new File( SDCardpath.getAbsolutePath() + "/myDir" );
//判斷目錄是否存在沒有就創建
if( !myDataPath.exists() ) {myDataPath.mkdirs();}
//將資料寫入到SD卡
FileWriter myFile = new FileWriter( SDCardpath.getAbsolutePath() +
"/myDir/text.xml" );
myFile.write("This is a test.");
myFile.flush();
myFile.close();
} catch (IOException e) {e.printStackTrace();}
}



相關連結
相關連結





沒有留言:

張貼留言

搜尋此網誌