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;
}
}
作者:wirelessqa