Commit 6a0c6197 authored by pengxin's avatar pengxin

文件写入进行修改。

parent f19150e5
......@@ -34,9 +34,7 @@ import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.*;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Future;
......@@ -216,6 +214,8 @@ public class DatasetCleanServiceImpl extends BaseService<DatasetClean, Long> imp
datasetVersionService.saveDatasetInfo(datasetVersion.getVersionName());
clearFileDatasetData(datasetVersion.getFileUrl());
//记录是否有追加数据
Integer index = 0;
Long count = datasetDataService.count(datasetId);
if (count > 0) {
List<DatasetRule> rules = buildRulesList(cleanId);
......@@ -232,9 +232,15 @@ public class DatasetCleanServiceImpl extends BaseService<DatasetClean, Long> imp
List<DatasetData> newDataList = dealWithDatasetNodeData(dataList, datasetId, rules);
if(CollUtil.isNotEmpty(newDataList)) {
appendDataListToFile(datasetVersion.getFileUrl() ,newDataList, i);
index ++;
}
}
//解析文件去掉多余的数据,比如文件里面最后一个,多加了一个",",缺少符号[]
if(index > 0){
readJsonAppendSymbol(datasetVersion.getFileUrl());
}
//删除为空的数据集数据
this.datasetDataService.deleteByData(datasetId);
}
......@@ -306,12 +312,45 @@ public class DatasetCleanServiceImpl extends BaseService<DatasetClean, Long> imp
}
}
/**
* 解析文件去掉多余的数据,比如文件里面最后一个,多加了一个",",缺少符号[]
* @param filePath 文件地址
*/
private void readJsonAppendSymbol(String filePath) {
try (FileReader fileReader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
StringBuilder jsonBuilder = new StringBuilder();
String line;
boolean isFirstLine = true;
while ((line = bufferedReader.readLine()) != null) {
if (isFirstLine) {
jsonBuilder.append("[");
isFirstLine = false;
} else {
// Add comma before each element except the first
jsonBuilder.append(",");
}
jsonBuilder.append(line);
}
// Remove last comma if present
if (jsonBuilder.charAt(jsonBuilder.length() - 1) == ',') {
jsonBuilder.deleteCharAt(jsonBuilder.length() - 1);
}
jsonBuilder.append("]");
} catch (IOException e) {
log.error("io exception is error:",e);
}
}
/**
* 第二个方法:将数据列表追加到文件
* @param filePath 文件地址
* @param dataList 数据集列表
*/
public void appendDataListToFile(String filePath, List<DatasetData> dataList,Integer pageNum) {
private void appendDataListToFile(String filePath, List<DatasetData> dataList,Integer pageNum) {
FileWriter fileWriter = null;
try {
//为第一页的情况下
......@@ -327,7 +366,6 @@ public class DatasetCleanServiceImpl extends BaseService<DatasetClean, Long> imp
}
fileWriter = new FileWriter(filePath, true);
fileWriter.write("[");
// 遍历你的数据列表,并将每一条数据写入到文件中
for (DatasetData data : dataList) {
if(StringUtils.isNotBlank(data.getData())) {
......@@ -335,16 +373,15 @@ public class DatasetCleanServiceImpl extends BaseService<DatasetClean, Long> imp
fileWriter.write("\n");
}
}
fileWriter.write("]");
} catch (IOException e) {
log.error("file write close is errot", e);
log.error("file write close is error", e);
} finally {
// 如果fileWriter不为空,关闭它
if (fileWriter != null) {
try {
fileWriter.close();
} catch (IOException e) {
log.error("file write close is errot", e);
log.error("file write close is error", e);
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment