diff --git a/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java b/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java index 1598d8f4..8568c7b6 100644 --- a/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java +++ b/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java @@ -100,10 +100,25 @@ public class DorisStreamLoadVisitor { if (null != props && props.containsKey("row_delimiter")) { lineDelimiter = DorisDelimiterParser.parse(String.valueOf(props.get("row_delimiter")), "\n"); } - return (String.join(lineDelimiter, rows) + lineDelimiter).getBytes(StandardCharsets.UTF_8); + StringBuilder sb = new StringBuilder(); + for (String row : rows) { + sb.append(row).append(lineDelimiter); + } + return sb.toString().getBytes(StandardCharsets.UTF_8); } if (DorisWriterOptions.StreamLoadFormat.JSON.equals(writerOptions.getStreamLoadFormat())) { - return new StringBuilder("[").append(String.join(",", rows)).append("]").toString().getBytes(StandardCharsets.UTF_8); + StringBuilder sb = new StringBuilder(); + sb.append("["); + boolean isFirstElement = true; + for (String row : rows) { + if (!isFirstElement) { + sb.append(","); + } + sb.append(row); + isFirstElement = false; + } + sb.append("]"); + return sb.toString().getBytes(StandardCharsets.UTF_8); } throw new RuntimeException("Failed to join rows data, unsupported `format` from stream load properties:"); }