Android TXT文件读写 分类: Android 2015-07-27 16:23 13人阅读 评论(0) 收藏

package com.wirelessqa.helper;  
  
import java.io.FileInputStream;  
import java.io.FileOutputStream;  
import java.io.InputStream;  
  
import org.apache.http.util.EncodingUtils;  
  
import android.app.Activity;  
  
public class FileAccess extends Activity {  
  
    /** 
     * 一、私有文件夹下的文件存取(/data/data/包名/files) 
     *  
     * @param fileName 
     * @param message 
     */  
    public void writeFileData(String fileName, String message) {  
        try {  
            FileOutputStream fout = openFileOutput(fileName, MODE_PRIVATE);  
            byte[] bytes = message.getBytes();  
            fout.write(bytes);  
            fout.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
  
    /** 
     * //读文件在./data/data/包名/files/下面 
     *  
     * @param fileName 
     * @return 
     */  
    public String readFileData(String fileName) {  
        String res = "";  
        try {  
            FileInputStream fin = openFileInput(fileName);  
            int length = fin.available();  
            byte[] buffer = new byte[length];  
            fin.read(buffer);  
            res = EncodingUtils.getString(buffer, "UTF-8");  
            fin.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return res;  
    }  
  
    /** 
     * 写, 读sdcard目录上的文件,要用FileOutputStream, 不能用openFileOutput 
     * 不同点:openFileOutput是在raw里编译过的,FileOutputStream是任何文件都可以 
     * @param fileName 
     * @param message 
     */  
    // 写在/mnt/sdcard/目录下面的文件  
    public void writeFileSdcard(String fileName, String message) {  
  
        try {  
  
            // FileOutputStream fout = openFileOutput(fileName, MODE_PRIVATE);  
  
            FileOutputStream fout = new FileOutputStream(fileName);  
  
            byte[] bytes = message.getBytes();  
  
            fout.write(bytes);  
  
            fout.close();  
  
        }  
  
        catch (Exception e) {  
  
            e.printStackTrace();  
  
        }  
  
    }  
  
    // 读在/mnt/sdcard/目录下面的文件  
  
    public String readFileSdcard(String fileName) {  
  
        String res = "";  
  
        try {  
  
            FileInputStream fin = new FileInputStream(fileName);  
  
            int length = fin.available();  
  
            byte[] buffer = new byte[length];  
  
            fin.read(buffer);  
  
            res = EncodingUtils.getString(buffer, "UTF-8");  
  
            fin.close();  
  
        }  
  
        catch (Exception e) {  
  
            e.printStackTrace();  
  
        }  
  
        return res;  
  
    }  
  
  
    /** 
     * 二、从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写) 
     *  
     * @param fileInRaw 
     * @return 
     */  
    public String readFromRaw(int fileInRaw) {  
        String res = "";  
        try {  
            InputStream in = getResources().openRawResource(fileInRaw);  
            int length = in.available();  
            byte[] buffer = new byte[length];  
            in.read(buffer);  
            res = EncodingUtils.getString(buffer, "GBK");  
            // res = new String(buffer,"GBK");  
            in.close();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return res;  
    }  
  
    /** 
     * 三、从asset中获取文件并读取数据(资源文件只能读不能写) 
     *  
     * @param fileName 
     * @return 
     */  
    public String readFromAsset(String fileName) {  
        String res = "";  
        try {  
            InputStream in = getResources().getAssets().open(fileName);  
            int length = in.available();  
            byte[] buffer = new byte[length];  
            in.read(buffer);  
            res = EncodingUtils.getString(buffer, "UTF-8");  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return res;  
    }  
  
  
  
}  

原文地址:https://www.cnblogs.com/xieping/p/4714169.html