本節分兩部分:
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(R.layout.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(R.layout.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]