国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 讀寫文件方法匯總

2020-04-11 12:04:34
字體:
來源:轉載
供稿:網友
一、 從resource中的raw文件夾中獲取文件并讀取數據(資源文件只能讀不能寫)
復制代碼 代碼如下:

String res = "";
try{
InputStream in = getResources().openRawResource(R.raw.bbi);
//在/Test/res/raw/bbi.txt,
int length = in.available();
byte [] buffer = new byte[length];
in.read(buffer);
//res = EncodingUtils.getString(buffer, "UTF-8");
//res = EncodingUtils.getString(buffer, "UNICODE");
res = EncodingUtils.getString(buffer, "BIG5");
//依bbi.txt的編碼類型選擇合適的編碼,如果不調整會亂碼
in.close();
}catch(Exception e){
e.printStackTrace();
}

myTextView.setText(res);//把得到的內容顯示在TextView上

二、 從asset中獲取文件并讀取數據(資源文件只能讀不能寫)
復制代碼 代碼如下:

String fileName = "yan.txt"; //文件名字
String res="";
try{
InputStream in = getResources().getAssets().open(fileName);
// /Test/assets/yan.txt這里有這樣的文件存在
int length = in.available();
byte [] buffer = new byte[length];
in.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
}catch(Exception e){
e.printStackTrace();
}

三、 從sdcard中去讀文件,首先要把文件通過/android-sdk-windows/tools/adb.exe把本地計算機上的文件copy到sdcard上去,adb.exe push e:/Y.txt /sdcard/, 不可以用adb.exe push e:/Y.txt /sdcard/ 同樣: 把仿真器上的文件copy到本地計算機上用: adb pull ./data/data/com.tt/files/Test.txt e:/
復制代碼 代碼如下:

String fileName = "/sdcard/Y.txt";
//也可以用String fileName = "mnt/sdcard/Y.txt";
String res="";
try{
FileInputStream fin = new FileInputStream(fileName);
//FileInputStream fin = openFileInput(fileName);
//用這個就不行了,必須用FileInputStream
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();
}
myTextView.setText(res);

四、 寫文件, 一般寫在/data/data/com.test/files/里面,打開DDMS查看file explorer是可以看到仿真器文件存放目錄的結構的
復制代碼 代碼如下:

String fileName = "TEST.txt";
String message = "FFFFFFF11111FFFFF" ;
writeFileData(fileName, message);
public voidwriteFileData(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/目錄(相當AP工作目錄)上的文件,用openFileOutput
復制代碼 代碼如下:

//寫文件在./data/data/com.tt/files/下面
public voidwriteFileData(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/com.tt/files/下面
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
復制代碼 代碼如下:

//寫在/mnt/sdcard/目錄下面的文件
public voidwriteFileSdcard(String fileName,String message){
try{
//FileOutputStream fout = openFileOutput(fileName, MODE_PRIVATE);
FileOutputStream fout = newFileOutputStream(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;
}

注: openFileOutput是在raw里編譯過的,FileOutputStream是任何文件都可以
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 集贤县| 邵东县| 宁波市| 呼和浩特市| 宁蒗| 防城港市| 河北区| 贵州省| 普陀区| 松潘县| 武定县| 吴旗县| 鲜城| 化州市| 都昌县| 任丘市| 大邑县| 卓资县| 大姚县| 根河市| 宝丰县| 威信县| 玉环县| 淮安市| 永胜县| 富源县| 轮台县| 山西省| 台南县| 屯留县| 车险| 荔浦县| 大新县| 汝州市| 吉安市| 体育| 洪雅县| 怀柔区| 鄂伦春自治旗| 遂昌县| 抚远县|