in backend/src/main/java/org/apache/iotdb/admin/tool/ExportCsv.java [168:213]
private void writeValue(List<Field> fields, BufferedWriter bw) throws IOException {
for (int j = 0; j < fields.size() - 1; j++) {
String value = fields.get(j).getStringValue();
if ("null".equalsIgnoreCase(value)) {
bw.write(",");
} else {
if (fields.get(j).getDataType() == TSDataType.TEXT) {
int location = value.indexOf("\"");
if (location > -1) {
if (location == 0 || value.charAt(location - 1) != '\\') {
bw.write("\"" + value.replace("\"", "\\\"") + "\",");
} else {
bw.write("\"" + value + "\",");
}
} else if (value.contains(",")) {
bw.write("\"" + value + "\",");
} else {
bw.write(value + ",");
}
} else {
bw.write(value + ",");
}
}
}
String lastValue = fields.get(fields.size() - 1).getStringValue();
if ("null".equalsIgnoreCase(lastValue)) {
bw.write("\n");
} else {
if (fields.get(fields.size() - 1).getDataType() == TSDataType.TEXT) {
int location = lastValue.indexOf("\"");
if (location > -1) {
if (location == 0 || lastValue.charAt(location - 1) != '\\') {
bw.write("\"" + lastValue.replace("\"", "\\\"") + "\"\n");
} else {
bw.write("\"" + lastValue + "\"\n");
}
} else if (lastValue.contains(",")) {
bw.write("\"" + lastValue + "\"\n");
} else {
bw.write(lastValue + "\n");
}
} else {
bw.write(lastValue + "\n");
}
}
}