private void writeValue()

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");
      }
    }
  }