转 Android - 文件操作

时间:2023-03-09 03:53:50
转 Android - 文件操作

一、资源文件的读取:

1) 从resource的raw中读取文件数据:

String res = "";
try{ //得到资源中的Raw数据流
InputStream in = getResources().openRawResource(R.raw.test); //得到数据的大小
int length = in.available(); byte [] buffer = new byte[length]; //读取数据
in.read(buffer); //依test.txt的编码类型选择合适的编码,如果不调整会乱码
res = EncodingUtils.getString(buffer, "BIG5"); //关闭
in.close(); }catch(Exception e){
e.printStackTrace();
}

2) 从resource的asset中读取文件数据

String fileName = "test.txt"; //文件名字
String res="";
try{ //得到资源中的asset数据流
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(); }

二、读写/data/data/<应用程序名>目录上的文件:

//写数据
public void writeFile(String fileName,String writestr{
try{ FileOutputStream fout =openFileOutput(fileName, MODE_PRIVATE); byte [] bytes = writestr.getBytes(); fout.write(bytes); fout.close();
} catch(Exception e){
e.printStackTrace();
}
} //读数据
public String readFile(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; }

三、读写SD卡中的文件。也就是/mnt/sdcard/目录下面的文件 :

//写数据到SD中的文件
public void writeFileSdcardFile(String fileName,String write_str){
try{ FileOutputStream fout = new FileOutputStream(fileName);
byte [] bytes = write_str.getBytes(); fout.write(bytes);
fout.close();
} catch(Exception e){
e.printStackTrace();
}
} //读SD中的文件
public String readFileSdcardFile(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;
}