public String createTxtFile(JSONArray jsonArray, String path, String filename) {
try {
// 含文件名的全路径
String fileName = filename + ".txt";
String fullPath = path + "/" + fileName;
File file = new File(fullPath);
File folder = new File(path);
if (!folder.exists() && !folder.isDirectory()) {
// 如果不存在,创建文件夹
folder.mkdirs();
}
if (!file.exists()) {
file.createNewFile();
} else {
file.delete();
}
// 格式化浮点数据
NumberFormat formatter = NumberFormat.getNumberInstance();
// 设置最大小数位为10
formatter.setMaximumFractionDigits(10);
// 格式化日期数据
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// 遍历输出每行
PrintWriter pfp = new PrintWriter(new FileOutputStream(file, true));
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
if (jsonObject.isEmpty()) {
break;
}
StringBuilder thisLine = new StringBuilder("");
for (Iterator<String> iterator = jsonObject.keySet().iterator(); iterator.hasNext(); ) {
// 当前字段
String key = iterator.next();
Object obj = jsonObject.get(key);
// 格式化数据
String field = "";
if (null != obj) {
if (obj.getClass() == String.class) {
// 如果是字符串
field = (String) obj;
} else if (obj.getClass() == Double.class || obj.getClass() == Float.class) {
// 格式化浮点数,使浮点数不以科学计数法输出
field = formatter.format(obj);
} else if (obj.getClass() == Integer.class || obj.getClass() == Long.class || obj.getClass() == Short.class || obj.getClass() == Byte.class) { // 如果是整形
field += obj;
} else if (obj.getClass() == Date.class) {
// 如果是日期类型
field = sdf.format(obj);
}
} else {
// null时给一个空格占位
field = " ";
}
// 拼接所有字段为一行数据,用tab键分隔
// 不是最后一个元素
if (iterator.hasNext()) {
thisLine.append(field).append("&@@&");
} else {
// 是最后一个元素
thisLine.append(field);
}
}
if (i == jsonArray.size() - 1) {
pfp.print(thisLine.toString());
} else {
pfp.print(thisLine.toString() + "\n");
}
}
pfp.close();
return filename;
} catch (Exception e) {
e.printStackTrace();
StackTraceElement s = e.getStackTrace()[0];//数组长度为 1
String message = "\n\n-----------------" +
"\n报错文件名:" + s.getFileName() +
"\n报错的类:" + s.getClassName() +
"\n报错方法::" + s.getMethodName() +
"\n报错的行:" + s.getLineNumber() +
"\n报错的message:" + e.getMessage();
logUtilsService.saveLog(filename + "文件生成失败: " + message, "", "每日推送DICT数据到集团", null);
return "文件生成失败";
}
}
10-11
11-09
226
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交