android文件操作OpenFileInput OpenFileOutput


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目錄下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM