您的位置:首页 > 移动开发 > Android开发

Android中如何获取asset目录下的ini文件

2015-01-16 15:43 447 查看
1、获取资源的输入流

假设资源位于assets目录下:

Context.getAssets().open(“sample.txt”)


public void deepFile(Context ctxDealFile, String path) {

try {

String str[] = ctxDealFile.getAssets().list(path);

if (str.length > 0) {// 如果是目录

File file = new File("/data/" + path);

file.mkdirs();

for (String string : str) {

path = path + "/" + string;

System.out.println("zhoulc:\t" + path);

// textView.setText(textView.getText()+"\t"+path+"\t");

deepFile(ctxDealFile, path);

path = path.substring(0, path.lastIndexOf('/'));

}

} else {// 如果是文件

InputStream is = ctxDealFile.getAssets().open(path);

FileOutputStream fos = new FileOutputStream(new File("/data/"

+ path));

byte[] buffer = new byte[1024];

int count = 0;

while (true) {

count++;

int len = is.read(buffer);

if (len == -1) {

break;

}

fos.write(buffer, 0, len);

}

is.close();

fos.close();

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

2、具体例子

private void getBootUrl(Context
context) throws IOException {

Log.d(TAG, "getBootUrl() start");

InputStream is = null;

BufferedReader in = null;

try {

is = context.getAssets().open("ini/boot.ini");

in = new BufferedReader(new InputStreamReader(is));

} catch (IOException e1) {

e1.printStackTrace();

Log.d(TAG, e1.getMessage());

}

StringBuffer sb = new StringBuffer();

String temp = null;// 存放每行读取的内容

int line = 1;

String[] sbStrs = new String[] {};// 以“=”为分隔符将string分割

try {

while ((temp = in.readLine()) != null) {

if (temp.contains("boot")) {

sb.append(temp.substring((temp.indexOf("t") + 2)) + " ");// 从“=”等分隔符以后截取子串保存,即只保存了boot和bootIp

line++;

// 读取下一行

while ((temp = in.readLine()) != null) {

if (temp.contains("bootIP")) {

sb.append(temp.substring((temp.indexOf("P") + 2))

+ " ");// 从“=”等分隔符以后截取子串保存,即只保存了boot和bootIp

break;

} else {

line++;

}

}

break;

}

}

in.close();

is.close();

} catch (IOException e) {

e.printStackTrace();

bootUrl = "";

Log.d(TAG, e.getMessage());

} finally {

if (in != null) {

in.close();

}

}

sbStrs = sb.toString().split(" ");

bootUrl = sbStrs[0];

bootIpUrl = sbStrs[1];

Log.d(TAG, "getBootUrl() end");

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: