【原创】Android编程之读取静态文件
0赞非常抱歉各位童鞋,由于电脑格式化,因此android课程要继续后延了,有一些朋友问我如何读取静态文件,我就把这个问题跟大家分享一下。
要打开打包在应用程序中的静态文件,使用Resources.openRawResource(R.raw.mydatafile)
我的文件是存放在如下位置的,记得该文件必须放在文件夹res/raw/中。
代码及说明:
InputStreamin = this.getResources().openRawResource(R.raw.my);
… //获得Context资源
in.close();//关闭输入流
文件存取示例
创建添加文件内容并保存,打开文件并显示内容
① 新建工程FileWriteRead
② 修改main.xml 布局,添加一个EditText、一个Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:id="@+id/EditText_Txt"
android:layout_height="350px"
android:layout_width="fill_parent">
③ 在res/layout 中新建一个open.xml 布局文件,添加一个TextView、两个Button("打开","清空")
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:id="@+id/EditText_Txt"
android:layout_height="350px"
android:layout_width="fill_parent">
android:id="@+id/openlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
android:id="@+id/TextView_showTxt"
android:layout_width="314px"
android:layout_height="373px"
android:layout_x="3px"
android:layout_y="3px">
④ 文件存储
/*定义IO对象*/
private String Text_of_input;
private OutputStream os;
Text_of_input = inputArt.getText().toString();
//得到用户输入字符
try {
os = this.openFileOutput("txtME", MODE_PRIVATE);
//打开一个文件输出流。名称为txtME,模式为不覆盖
os.write(Text_of_input.getBytes());
//把内容写入文件
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
} finally {
try {
//关闭文件输出流
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
⑤ 文件读取
android:layout_width="80px"
android:layout_height="wrap_content"
android:text="打开"
android:layout_x="2px"
android:layout_y="378px">
/*定义IO对象*/
private String Text_of_input;
private OutputStream os;
Text_of_input = inputArt.getText().toString();
//得到用户输入字符
try {
os = this.openFileOutput("txtME", MODE_PRIVATE);
//打开一个文件输出流。名称为txtME,模式为不覆盖
os.write(Text_of_input.getBytes());
//把内容写入文件
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
} finally {
try {
//关闭文件输出流
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
/*定义IO对象*/
private String Text_of_output;
private InputStream is;
⑥ 修改mianActivity.java 文件,添加menu 菜单与操作
private byte[] b;
try {
//打开一个文件输入流。名称为txtME
is = this.openFileInput("txtME");
//字节数组声明定义
b = new byte[1024];
//读取文件内容放入字节数组
int length = is.read(b);
//把字节数组转换成字符串
Text_of_output = new String(b);
//显示读取内容长度
setTitle("文件字数:" + length);
//显示读取的文件内容
showmyText.setText(Text_of_output);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}finally {
try {
//关闭文件输入流
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
⑦ 结果