Android读取asserts和raw文件夹下的文件

经常需要用到读取“/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<String> 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 );
    }
}

时间: 2025-01-16 14:00:03

Android读取asserts和raw文件夹下的文件的相关文章

VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示

Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E"Const TR_COL_NAME = "C"Const TR_COL_COUNT = "D"Const TR_COL_TREE_START = "F"Const TR_ROW_HEIGHT = 23Const TR_COL_LINE_WIDT

将android项目assets文件夹下的文件复制到SD卡中

<pre name="code" class="html">package com.lapel.activity.html; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context; /** * * 将assets文件夹下的文件复制

Python读取指定文件夹下的文件

1 # -*- coding: utf-8 -*- 2 import csv 3 import os 4 import pandas as pd 5 #提取文件夹下的地址+文件名,源文件设定排序规则 6 def file_name(file_dir): 7 L = [] 8 for root, dirs, files in os.walk(file_dir): 9 for file in files: 10 if os.path.splitext(file)[1] == '.csv': 11 L

Java遍历文件夹下所有文件并替换指定字符串

应用场景:比如有一个深层次的文件目录结构,如:javaAPI 每个文件里面都有相同的内容,而我们要统一修改为其他内容.上千个文件如果一个个修改显得太不明智. import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.PrintWriter; public class Test { /** *

利用shell脚本或者php移动某个文件夹下的文件到各自的日期组成的目录下

背景是这样的:网站一开始访问量比较小,大家就把所有的图片文件上传到一个目录下(比如是/data/images/).后来访问量大了,图片也多了,这样就影响读取效率.所以有个这样的需求,把这些个图片文件移动到多个目录下,这个目录是图片的上传日期(就是文件属性中的修改日期filemtime)组成的.比如2012-12-20的修改日期,那么现在就该放在/data/images/2012/12/20的目录下. php有很容易的操作文件的函数,可以方便完成.当然也可以利用shell脚本完成. 用shell的

给一个文件夹,返回该文件夹下所有文件的数量

<?php 给一个文件夹,读取文件夹里面文件的数量 echo ShuLiang("./gai.php"); 给一个文件夹,返回该文件夹下所有文件的数量 function ShuLiang($filename) { $sum=0; 定一个初始值 变量 $dir = opendir($filename); while($f = readdir($dir)) { if($f=="." || $f=="..") 排除 两个文件 { } else {

批处理脚本遍历指定文件夹下的文件

批处理脚本 1. 遍历指定文件夹下的文件 1.1 命令解释 命令: for [参数] %%变量名 in (匹配符) do (执行的命令) 切记:每个指令之间必须以空格隔开,in 与 ( 之间有空格,do 与 ( 间也有空格,否则命令会无法成功执行 ps:本节只讲用批处理脚本执行 for 命令遍历文件夹的场景,因此以下分析每个指令意义时,不介绍其他含义 []:表示此项指令为可选 [参数]:参数取值一共有四种: /d, /r, /l, /f,加上无参数,所以一共五种场景 无参:遍历当前路径的文件夹下

OpenCV实现遍历文件夹下所有文件

OpenCV中有实现遍历文件夹下所有文件的类Directory,它里面包括3个成员函数:(1).GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹:(2).GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件:(3).GetListFilesR:遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹. 若要使用Directory类,则需包含contrib.hpp头文件,此类的实现在contrib模块. 下面为测试代码: cv::Dire

删除沙盒中文件夹下所有文件

有时候需要在iOS系统里面,删除指定文件夹的内容,文件夹里面可能是文件,也可能包含有文件夹. 删除指定类型的文件.方法如下: NSString *extension = @"m4r"; NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,