国产探花免费观看_亚洲丰满少妇自慰呻吟_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是任何文件都可以
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桓台县| 永定县| 南溪县| 东乡族自治县| 本溪| 阜康市| 剑阁县| 射洪县| 都匀市| 威信县| 泰宁县| 马边| 峡江县| 上蔡县| 闸北区| 抚远县| 双鸭山市| 中阳县| 抚顺县| 朔州市| 阿拉尔市| 潮安县| 治多县| 白城市| 沅江市| 合水县| 调兵山市| 清流县| 南汇区| 东阿县| 甘德县| 土默特右旗| 阿拉善盟| 碌曲县| 崇仁县| 津南区| 西峡县| 岚皋县| 班玛县| 梓潼县| 台江县|