萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> Android中的文件I/O操作

Android中的文件I/O操作

  本節分兩部分:

  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]

  

copyright © 萬盛學電腦網 all rights reserved