Java: BufferdWriter无缘无故把String打印成两行?

Java: BufferdWriter prints String into two lines for no reason?

我目前正在 Java 中编写“文本检查”程序,但不知何故,我在为每个文件创建唯一标识符时遇到了困难。

实际上我是这样创建一个新标识符的:

String identifier = Base64.encode((dateFormat.format(date) + "#" + uuid.toString() + "#" + name+".sc0").getBytes()).replace("=", "");

我的程序还创建了一个新文件并打开了一个 BufferedWriter。 实际上,当我现在尝试附加时(我也尝试使用 BufferedWriter#write,但它也没有用。)

如果我现在将这个字符串写入文件,它看起来像这样:

BlMjAxNi8wMy8zMSAyMDo0MjowOSMzMThhYjRkNS0yNjFhLTQwNjItODkyOS03NzlkZDIyOWY4Nj

dGVzdC5zYzA

但它应该像这样只有一行:

BlMjAxNi8wMy8zMSAyMDo0MjowOSMzMThhYjRkNS0yNjFhLTQwNjItODkyOS03NzlkZDIyOWY4NjdGVzdC5zYzA

起初我认为我在使用 BufferedWriter#write 后创建一个新行可能会有问题,所以我尝试在创建一个新行之前刷新我的 BufferedWriter。也没用...

PS: 完整的必要代码:

    String name = file.getName().substring(0, ind);
    File next = new File(folder.getAbsolutePath(), name+".sc0");
    String identifier = Base64.encode((dateFormat.format(date) + "#" + uuid.toString() + "#" + name+".sc0").getBytes()).replace("=", "");

    try {
        next.delete();
        next.createNewFile();

        BufferedWriter writer = new BufferedWriter(new FileWriter(next));
        logger.info("Adding compiler identifier to file ...");
        writer.write("#Script0:"+identifier);

        writer.flush();
        writer.newLine();

        for(String str : lines) {
            writer.newLine();
            writer.append(str);
        }

        writer.flush();
        writer.close();

    } catch (IOException e) {
        logger.error("Strange bug ... Did you delete the file? Please try again!");
        return;
    }

是编码器,不是BufferedWriter。 Base-64 编码使用(我相信)72 个字符的行长度。