Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android讀取asserts和raw文件夾下的文件

Android讀取asserts和raw文件夾下的文件

編輯:關於Android編程

經常需要用到讀取“/res/raw”和"/asserts"文件夾下的文件,索性寫成工具類方便以後使用。


一、raw文件夾下的文件操作工具類:

/**
 * raw文件夾下的文件處理工具類
 * 
 * */
public class RawFileUtils {
	private RawFileUtils( ){
		
	}
	
	/**
	 * 讀取raw文件夾下的文件
	 * @param resourceId raw文件夾下的文件資源ID
	 * @return 文件內容
	 * 
	 * */
	public static String readFileFromRaw(Context context, int resourceId) {
		if( null == context || resourceId < 0 ){
			return null;
		}
		
		String result = null;
		try {
			InputStream inputStream = context.getResources().openRawResource( resourceId );
			// 獲取文件的字節數
			int length = inputStream.available();
			// 創建byte數組
			byte[] buffer = new byte[length];
			// 將文件中的數據讀到byte數組中
			inputStream.read(buffer);
			result = EncodingUtils.getString(buffer, "utf-8");
		} catch (Exception e) {
			e.printStackTrace();
		}

		return result;
	}
}


二、asserts文件夾下的文件操作工具類:
/**
 * asserts文件處理
 * 
 * */
public class AssertsFileUtils {
	private AssertsFileUtils( ){
		
	}
	
	/**
	 * 讀取asserts目錄下的文件
	 * @param fileName eg:"updatelog.txt"
	 * @return 對應文件的內容
	 * 
	 * */
	public static String readFileFromAssets(Context context, String fileName) throws IOException, IllegalArgumentException {
		if (null == context || TextUtils.isEmpty( fileName )){
			throw new IllegalArgumentException( "bad arguments!" );
		}
		
		AssetManager assetManager = context.getAssets();
		InputStream input = assetManager.open(fileName);
		ByteArrayOutputStream output = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];
		int length = 0;
		while ((length = input.read(buffer)) != -1) {
			output.write(buffer, 0, length);
		}
		output.close();
		input.close();
		
		return output.toString();
	}
	
	/**
     * 列出Asserts文件夾下的所有文件
     * @return asserts目錄下的文件名列表
     * 
     * */
    public static List getAssertsFiles( Context context ) throws IllegalArgumentException{
    	if( null == context ){
    		throw new IllegalArgumentException( "bad arguments!" );
    	}
    	
    	AssetManager assetManager = context.getAssets();
        String[] files = null;
        try {
            files = assetManager.list("");
        } catch (IOException e) {
            e.printStackTrace( );
        }
        
        return ( null == files )?null:Arrays.asList( files );
    }
}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved