发现写文件在Android中挺常用的,从毕业开始工作到4年后的今天,时不时的都在用,所以今天就"android 写文件"总结,哪些常用,哪些高效,哪些炫酷。当然还有读文件。
写入SD卡
private final static String TAG = "FileUtil";
private static String pathName=Environment.getExternalStorageDirectory()+ "/GetUUID/";private static String fileName="LicenseApply.txt";
public static void writeToSD(String s) {
String sdStatus = Environment.getExternalStorageState();
if(!sdStatus.equals(Environment.MEDIA_MOUNTED)) {
Log.d("TestFile", "SD card is not avaiable/writeable right now.");
return;
}
try {
File path = new File(pathName);
File file = new File(pathName + fileName);
if( !path.exists()) {
Log.d(TAG, "Create the path:" + pathName);
path.mkdir(); //保存在指定的文件夹
}
if( !file.exists()) {
Log.d(TAG, "Create the file:" + fileName);
file.createNewFile();
}
FileOutputStream stream = new FileOutputStream(file);
byte[] buf = s.getBytes();
stream.write(buf);
stream.close();
} catch(Exception e) {
Log.e(TAG, "Error on writeFilToSD.");
e.printStackTrace();
}
}
从assets文件夹下读取
public static String readFileFromAssets(Context context,String fileName){
String res="";
try{
InputStream in = context.getResources().getAssets().open(fileName);
int length = in.available();
byte [] buffer = new byte[length];
in.read(buffer);
in.close();
//res = EncodingUtils.getString(buffer, "UTF-8");// EncodingUtils:deprecated 过时,API level 21之后是不可以的
res = new String(buffer, "UTF-8"); //用new String可以运行在任意API Level
}catch(Exception e){
e.printStackTrace();
}
return res;
}