/**
* 读写文件
* @param fileName 文件名
* @param context 内容
* @param op D:删除文件;R:读文件;A:添加内容
* @return 1.success:成功;2.fail:失败; 3.读文件直接返回内容
*/
public String operationFile(String fileName,String context,String op) {
File logsDirectory = new File(WebActivity.SDCARD_LOGS_PATH);
if(!logsDirectory.exists()){
logsDirectory.mkdirs();
}
File file = new File(logsDirectory+ "/" + fileName);
FileInputStream fi = null;
InputStreamReader isr = null;
BufferedReader bfin = null;
FileOutputStream outSTr = null;
BufferedOutputStream Buff = null;
try {
if("D".equals(op)){//删除文件
if(file.exists()){
file.delete();
}
return "success";//删除文件成功
} else if("A".equals(op)){// 写文件
if(!file.exists()){
file.createNewFile();
}
if(file.length() > 5*1024*1024){//大于5M 备份文件 删除之前备份的文件
File oldFile = new File(file.getParent()+File.separator+file.getName()+"_back");
if(oldFile.exists()){
oldFile.delete();
}
if(file.renameTo(oldFile)){
file.createNewFile();
} else {
return "fail";//读写文件失败
}
}
outSTr = new FileOutputStream(file,true);
Buff = new BufferedOutputStream(outSTr);
String newstr = new String(Base64.encode(context.getBytes(), Base64.DEFAULT)).replaceAll("\r\n", "").replaceAll("\r", "").replaceAll("\n", "");
Buff.write((newstr+"\r\n").getBytes());
Buff.flush();
return "success";
} else if("R".equals(op)){//读文件
if(!file.exists()){
return "fail";//读写文件失败
}
fi = new FileInputStream(file);
isr = new InputStreamReader(fi, "UTF-8");
bfin = new BufferedReader(isr);
String content = "";
String rLine = "";
while ((rLine = bfin.readLine()) != null) {
content += new String(Base64.decode(rLine.getBytes(), Base64.DEFAULT))+"\r\n";
}
return content;
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if (bfin != null)
bfin.close();
if (isr != null)
isr.close();
if (fi != null)
fi.close();
if (Buff != null)
Buff.close();
if (outSTr != null)
outSTr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return "fail";//读写文件失败
}