Dumping a Java StringBuilder to File

前端 未结 9 617
南旧
南旧 2021-02-01 14:17

What is the most efficient/elegant way to dump a StringBuilder to a text file?

You can do:

outputStream.write(stringBuilder.toString().getBytes());
         


        
9条回答
  •  一个人的身影
    2021-02-01 14:40

    Based on https://stackoverflow.com/a/1677317/980442

    I create this function that use OutputStreamWriter and the write(), this is memory optimized too, better than just use StringBuilder.toString().

    public static void stringBuilderToOutputStream(
            StringBuilder sb, OutputStream out, String charsetName, int buffer)
            throws IOException {
        char[] chars = new char[buffer];
        try (OutputStreamWriter writer = new OutputStreamWriter(out, charsetName)) {
            for (int aPosStart = 0; aPosStart < sb.length(); aPosStart += buffer) {
                buffer = Math.min(buffer, sb.length() - aPosStart);
                sb.getChars(aPosStart, aPosStart + buffer, chars, 0);
                writer.write(chars, 0, buffer);
            }
        }
    }
    

提交回复
热议问题