创建一个类,以便调用方法,类名自定义,我这里定义类名是: WrittenLog
1.定义一个固定的路径:
private static final String fileXml = "C:/Users/zhangjie/Desktop/loger/loger";
2.定义一个字符串写入的方法,其中有两个参数,一个是绝对路径(fileXml),一个是传入的字段串(context)
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.StringReader;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
//把参数写入日志文件
private void logger (String context,String fileXml) throws IOException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String trace = sdf.format(new Date().getTime());定义一个系统时间
File file = new File(fileXml);
if (!file.exists()) {检测是否有logger.TXT文件
file.mkdir();
}
String path = file+".txt";
File writeFile = new File(path);
if (!writeFile.exists()) {检测是否在该路径下有logger文件夹
writeFile.createNewFile();
writeFile = new File(path);
}
FileOutputStream fw = new FileOutputStream(writeFile,true);
Writer out = new OutputStreamWriter(fw,"UTF-8");设置字符集编码格式
out.write(trace+"----"+context);
String newFile = System.getProperty("line.separator");
out.write(newFile);
out.close();
fw.flush();
fw.close();
下列是xml格式的参数匹配,如果是json格式参数无需下列代码
Pattern p = Pattern.compile(">(\\s*|\n|\t|\r)<");
Matcher m = p.matcher(response);
String returnxml = m.replaceAll("><");
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
Document doc = null;
DocumentBuilder builder = builderFactory.newDocumentBuilder();
if(returnxml!=null){
StringReader sr = new StringReader(returnxml);
InputSource is = new InputSource(sr);
doc = builder.parse(is);
}else{
throw new Exception("没有收款单数据传入!");
}
}
3.创建实例,调用方法:
WrittenLog write = new WrittenLog();
write.logger(context,fileXml);