Android中的文件I/O操作
Android中的文件I/O操作
发布时间:2015-06-05 来源:查字典编辑
摘要:本节分两部分:1.访问SD卡.2.访问手机中的存储文件夹.3.读取assets中的文件.一.访问SD卡:1.界面编辑(reslayoutma...

本节分两部分:

1.访问SD卡.

2.访问手机中的存储文件夹.

3.读取assets中的文件.

一.访问SD卡:

1.界面编辑(reslayoutmain.xml):

[java]

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:id="@+id/Button01"

android:layout_width="128dp"

android:layout_height="wrap_content"

android:text="打开" >

android:id="@+id/button1"

android:layout_width="125dp"

android:layout_height="wrap_content"

android:text="测试按钮" />

android:id="@+id/ScrollView01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:editable="false"

android:id="@+id/EditText01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:id="@+id/Button01"

android:layout_width="128dp"

android:layout_height="wrap_content"

android:text="打开" >

android:id="@+id/button1"

android:layout_width="125dp"

android:layout_height="wrap_content"

android:text="测试按钮" />

android:id="@+id/ScrollView01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:editable="false"

android:id="@+id/EditText01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

2. 代码编辑(srcwyfzclMyActivity.java):

[java]

package wyf.zcl;

import java.io.File; //引入相关包

import java.io.FileInputStream; //引入相关包

import android.app.Activity; //引入相关包

import android.os.Bundle; //引入相关包

import android.view.View; //引入相关包

import android.widget.Button; //引入相关包

import android.widget.EditText; //引入相关包

import android.widget.Toast; //引入相关包

public class MyActivity extends Activity {

/** Called when the activity is first created. */

Button but; //打开按钮引用

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(yout.main);

but=(Button)findViewById(R.id.Button01);

//打开按钮初始化

but.setOnClickListener(new View.OnClickListener() {

//为打开按钮添加监听器

@Override

public void onClick(View v) {

String contentResult=loadContentFromSDCard("歌词.txt");

//调用读取文件方法,获得文件内容

EditText etContent=(EditText)findViewById(R.id.EditText01);

//实例化EditText

etContent.setText(contentResult);

//设置EditText的内容

}

});

}

public String loadContentFromSDCard(String fileName){

//从SD卡读取内容

String content=null; //sd卡 的内容字符串

try{

File f=new File("/sdcard/ebook/"+fileName);//待读取的文件

int length=(int)f.length();

byte[] buff=new byte[length];

FileInputStream fis=new FileInputStream(f);

fis.read(buff); // 从此输入流中将 byte.length 个字节的数据读入一个 byte 数组中

fis.close(); //关闭此输入流并释放与此流关联的所有系统资源

content=new String(buff,"UTF-8");

}catch(Exception e){

Toast.makeText(this, "对不起,没有找到文件",

Toast.LENGTH_SHORT).show();

}

return content;

}

}

package wyf.zcl;

import java.io.File; //引入相关包

import java.io.FileInputStream; //引入相关包

import android.app.Activity; //引入相关包

import android.os.Bundle; //引入相关包

import android.view.View; //引入相关包

import android.widget.Button; //引入相关包

import android.widget.EditText; //引入相关包

import android.widget.Toast; //引入相关包

public class MyActivity extends Activity {

/** Called when the activity is first created. */

Button but; //打开按钮引用

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(yout.main);

but=(Button)findViewById(R.id.Button01);

//打开按钮初始化

but.setOnClickListener(new View.OnClickListener() {

//为打开按钮添加监听器

@Override

public void onClick(View v) {

String contentResult=loadContentFromSDCard("歌词.txt");

//调用读取文件方法,获得文件内容

EditText etContent=(EditText)findViewById(R.id.EditText01);

//实例化EditText

etContent.setText(contentResult);

//设置EditText的内容

}

});

}

public String loadContentFromSDCard(String fileName){

//从SD卡读取内容

String content=null; //sd卡 的内容字符串

try{

File f=new File("/sdcard/ebook/"+fileName);//待读取的文件

int length=(int)f.length();

byte[] buff=new byte[length];

FileInputStream fis=new FileInputStream(f);

fis.read(buff); // 从此输入流中将 byte.length 个字节的数据读入一个 byte 数组中

fis.close(); //关闭此输入流并释放与此流关联的所有系统资源

content=new String(buff,"UTF-8");

}catch(Exception e){

Toast.makeText(this, "对不起,没有找到文件",

Toast.LENGTH_SHORT).show();

}

return content;

}

}

运行效果如下:

Android中的文件I/O操作1

二.访问手机中的存储文件夹:

访问手机中的文件夹和访问SD卡一样,只需要指明具体位置即可,只是权限这一块需要提升。

三.读取assets中的文件:

1.在项目工程的"assets"目录下,新建一个UTF8编码的文本文件"test.txt"作为测试的对象。

Android中的文件I/O操作2

2.界面编辑(reslayoutmain.xml):

[java]

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:text="打开"

android:id="@+id/Button01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:id="@+id/ScrollView01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:editable="false"

android:id="@+id/EditText01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:text="打开"

android:id="@+id/Button01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:id="@+id/ScrollView01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

android:editable="false"

android:id="@+id/EditText01"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

3. 代码编辑(srcwyfzclMyActivity.java):

[java]

package wyf.zcl;

import java.io.ByteArrayOutputStream; //引入相关包

import java.io.InputStream; //引入相关包

import android.app.Activity; //引入相关包

import android.os.Bundle; //引入相关包

import android.view.View; //引入相关包

import android.widget.Button; //引入相关包

import android.widget.EditText; //引入相关包

import android.widget.Toast; //引入相关包

public class MyActivity extends Activity {

/** Called when the activity is first created. */

private Button but;//打开按钮

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(yout.main);

but=(Button)findViewById(R.id.Button01);//打开按钮实例化

but.setOnClickListener(new View.OnClickListener() {//打开按钮添加监听器

@Override

public void onClick(View v) {

String contentResult=loadFromAssert("test.txt");

EditText etContent=(EditText)findViewById(R.id.EditText01);

etContent.setText(contentResult);

}

});

}

public String loadFromAssert(String fileName){

String content=null;//结果字符串

try{

InputStream is=this.getResources().getAssets().open(fileName);//打开文件

int ch=0;

ByteArrayOutputStream baos = new ByteArrayOutputStream();//实现了一个输出流

while((ch=is.read())!=-1){

baos.write(ch); // 将指定的字节写入此 byte 数组输出流。

}

byte[] buff=baos.toByteArray(); //以 byte 数组的形式返回此输出流的当前内容

baos.close(); //关闭流

is.close(); //关闭流

content=new String(buff,"UTF-8"); //设置字符串编码

}catch(Exception e){

Toast.makeText(this, "对不起,没有找到指定文件!", Toast.LENGTH_SHORT).show();

}

return content;

}

}

package wyf.zcl;

import java.io.ByteArrayOutputStream; //引入相关包

import java.io.InputStream; //引入相关包

import android.app.Activity; //引入相关包

import android.os.Bundle; //引入相关包

import android.view.View; //引入相关包

import android.widget.Button; //引入相关包

import android.widget.EditText; //引入相关包

import android.widget.Toast; //引入相关包

public class MyActivity extends Activity {

/** Called when the activity is first created. */

private Button but;//打开按钮

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(yout.main);

but=(Button)findViewById(R.id.Button01);//打开按钮实例化

but.setOnClickListener(new View.OnClickListener() {//打开按钮添加监听器

@Override

public void onClick(View v) {

String contentResult=loadFromAssert("test.txt");

EditText etContent=(EditText)findViewById(R.id.EditText01);

etContent.setText(contentResult);

}

});

}

public String loadFromAssert(String fileName){

String content=null;//结果字符串

try{

InputStream is=this.getResources().getAssets().open(fileName);//打开文件

int ch=0;

ByteArrayOutputStream baos = new ByteArrayOutputStream();//实现了一个输出流

while((ch=is.read())!=-1){

baos.write(ch); // 将指定的字节写入此 byte 数组输出流。

}

byte[] buff=baos.toByteArray(); //以 byte 数组的形式返回此输出流的当前内容

baos.close(); //关闭流

is.close(); //关闭流

content=new String(buff,"UTF-8"); //设置字符串编码

}catch(Exception e){

Toast.makeText(this, "对不起,没有找到指定文件!", Toast.LENGTH_SHORT).show();

}

return content;

}

}

4.运行效果:

Android中的文件I/O操作3
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类