So. I've tried:
StringBuilder sb = new StringBuilder();
for(String bufferItem: buffer){
sb.append(bufferItem);
}
and I've also tried:
String.join("\n", buffer)
I am joining a large files(under 10GB) in memory on a system with more than 100GB. The following is the stack trace. How can I solve this problem?
Exception in thread "main" java.lang.OutOfMemoryError
at java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:161)
at java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:155)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:125)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
at java.lang.StringBuilder.append(StringBuilder.java:136)
at java.lang.StringBuilder.append(StringBuilder.java:76)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:484)
at java.lang.StringBuilder.append(StringBuilder.java:166)
at java.util.StringJoiner.add(StringJoiner.java:185)
at java.lang.String.join(String.java:2504)
I am joining a large files- then maybe you should actually be writing to a file instead of trying to do this In memory.