android 中對文件的IO操作,OpenFileInput OpenFileOutput 返回對象為Java Io 的FileInputStream和FileOutputStream
我們通過一個小例子,來看下是如何使用的
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.ssln.fileoperator.MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvMsg" /> </RelativeLayout>
mainactivity.java
package com.ssln.fileoperator; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import org.apache.http.util.EncodingUtils; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { private String fileName = "text.txt"; private String message = "這是通過OpenFileOupput寫出,OpenFileInput讀取的內容"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //寫出文件 WriteFile(); //查找控件 TextView tvMsg=(TextView)findViewById(R.id.tvMsg); //讀取內容 tvMsg.setText(ReadFile()); } /** * 讀取文件 * * @return 讀取到的文件內容 */ private String ReadFile() { FileInputStream inputStream; byte[] buffer = null; try { inputStream = this.openFileInput(fileName); try { // 獲取文件內容長度 int fileLen = inputStream.available(); // 讀取內容到buffer buffer = new byte[fileLen]; inputStream.read(buffer); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } // 返回文本信息 if (buffer != null) return EncodingUtils.getString(buffer, "utf-8"); else return ""; } /** * 寫出文件內容到文件 */ private void WriteFile() { try { // 打開文件,該文件只能由調用該方法的應用程序訪問 // MODE_PRIVATE 該文件只能由調用該方法的應用程序訪問 // MODE_APPEND 如果文件已存在,就在結尾追加內容,而不是覆蓋文件 // MODE_WORLD_READABLE 賦予所有應用程序讀權限 // MODE_WORLD_WRITEABLE 賦予所有應用程序寫權限 FileOutputStream outStream = this.openFileOutput(fileName, MODE_PRIVATE); // 將文本轉換為字節集 byte[] data = message.getBytes(); try { // 寫出文件 outStream.write(data); outStream.flush(); outStream.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { e.printStackTrace(); } } }
運行效果

text.txt文件存儲在了 data\data\報名\files目錄下

