本节分两部分:
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;
}
}
运行效果如下:
二.访问手机中的存储文件夹:
访问手机中的文件夹和访问SD卡一样,只需要指明具体位置即可,只是权限这一块需要提升。
三.读取assets中的文件:
1.在项目工程的"assets"目录下,新建一个UTF8编码的文本文件"test.txt"作为测试的对象。
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.运行效果: