首页 > 代码库 > Android读取asserts和raw文件夹下的文件
Android读取asserts和raw文件夹下的文件
Android读取asserts和raw文件夹下的文件
经常需要用到读取“/res/raw”和"/asserts"文件夹下的文件,索性写成工具类方便以后使用。
一、raw文件夹下的文件操作工具类:
1 /** 2 * raw文件夹下的文件处理工具类 3 * 4 * */ 5 public class RawFileUtils { 6 private RawFileUtils( ){ 7 8 } 9 10 /**11 * 读取raw文件夹下的文件12 * @param resourceId raw文件夹下的文件资源ID13 * @return 文件内容14 * 15 * */16 public static String readFileFromRaw(Context context, int resourceId) {17 if( null == context || resourceId < 0 ){18 return null;19 }20 21 String result = null;22 try {23 InputStream inputStream = context.getResources().openRawResource( resourceId );24 // 获取文件的字节数25 int length = inputStream.available();26 // 创建byte数组27 byte[] buffer = new byte[length];28 // 将文件中的数据读到byte数组中29 inputStream.read(buffer);30 result = EncodingUtils.getString(buffer, "utf-8");31 } catch (Exception e) {32 e.printStackTrace();33 }34 35 return result;36 }37 }
二、asserts文件夹下的文件操作工具类:
1 /** 2 * asserts文件处理 3 * 4 * */ 5 public class AssertsFileUtils { 6 private AssertsFileUtils( ){ 7 8 } 9 10 /**11 * 读取asserts目录下的文件12 * @param fileName eg:"updatelog.txt"13 * @return 对应文件的内容14 * 15 * */16 public static String readFileFromAssets(Context context, String fileName) throws IOException, IllegalArgumentException {17 if (null == context || TextUtils.isEmpty( fileName )){18 throw new IllegalArgumentException( "bad arguments!" );19 }20 21 AssetManager assetManager = context.getAssets();22 InputStream input = assetManager.open(fileName);23 ByteArrayOutputStream output = new ByteArrayOutputStream();24 byte[] buffer = new byte[1024];25 int length = 0;26 while ((length = input.read(buffer)) != -1) {27 output.write(buffer, 0, length);28 }29 output.close();30 input.close();31 32 return output.toString();33 }34 35 /**36 * 列出Asserts文件夹下的所有文件37 * @return asserts目录下的文件名列表38 * 39 * */40 public static List<String> getAssertsFiles( Context context ) throws IllegalArgumentException{41 if( null == context ){42 throw new IllegalArgumentException( "bad arguments!" );43 }44 45 AssetManager assetManager = context.getAssets();46 String[] files = null;47 try {48 files = assetManager.list("");49 } catch (IOException e) {50 e.printStackTrace( );51 }52 53 return ( null == files )?null:Arrays.asList( files );54 }55 }
三、实例:
1 public class MyActivity extends Activity{ 2 3 public static final String ENCODING = "UTF-8"; 4 TextView tv1; 5 TextView tv2; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState);10 setContentView(R.layout.main);11 tv1 = (TextView)findViewById(R.id.tv1);12 tv1.setTextColor(Color.RED);13 tv1.setTextSize(15.0f);14 tv2 = (TextView)findViewById(R.id.tv2);15 tv2.setTextColor(Color.RED);16 tv2.setTextSize(15.0f);17 tv1.setText(getFromRaw());18 tv2.setText(getFromAssets("test2.txt"));19 }20 21 //从resources中的raw 文件夹中获取文件并读取数据22 public String getFromRaw(){23 String result = "";24 try {25 InputStream in = getResources().openRawResource(R.raw.test1);26 //获取文件的字节数27 int lenght = in.available();28 //创建byte数组29 byte[] buffer = new byte[lenght];30 //将文件中的数据读到byte数组中31 in.read(buffer);32 result = EncodingUtils.getString(buffer, ENCODING);33 } catch (Exception e) {34 e.printStackTrace();35 }36 return result;37 }38 39 //从assets 文件夹中获取文件并读取数据40 public String getFromAssets(String fileName){41 String result = "";42 try {43 InputStream in = getResources().getAssets().open(fileName);44 //获取文件的字节数45 int lenght = in.available();46 //创建byte数组47 byte[] buffer = new byte[lenght];48 //将文件中的数据读到byte数组中49 in.read(buffer);50 result = EncodingUtils.getString(buffer, ENCODING);51 } catch (Exception e) {52 e.printStackTrace();53 }54 return result;55 }56 }
参考:http://blog.csdn.net/ekeuy/article/details/39479201
Android读取asserts和raw文件夹下的文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。