Ich schreibe gerade ein "Text-Check" -Programm in Java, aber irgendwie blieb ich stecken, während ich eine eindeutige Kennung für jede Datei erstellte.Java: BufferDWriter druckt String in zwei Zeilen ohne Grund?
Eigentlich erstelle ich eine neue Kennung wie folgt aus:
String identifier = Base64.encode((dateFormat.format(date) + "#" + uuid.toString() + "#" + name+".sc0").getBytes()).replace("=", "");
auch eine neue Datei mein Programm erstellt und öffnet eine BufferedWriter. Eigentlich, wenn ich jetzt zu anhängen versuchen (. Ich habe versucht, BufferedWriter#write
verwenden, auch, aber es hat nicht funktioniert)
Wenn ich diesen String in die Datei jetzt schreiben, sieht es wie folgt aus:
BlMjAxNi8wMy8zMSAyMDo0MjowOSMzMThhYjRkNS0yNjFhLTQwNjItODkyOS03NzlkZDIyOWY4Nj
dGVzdC5zYzA
aber es sollte so in nur einer Zeile:
BlMjAxNi8wMy8zMSAyMDo0MjowOSMzMThhYjRkNS0yNjFhLTQwNjItODkyOS03NzlkZDIyOWY4NjdGVzdC5zYzA
Zuerst dachte ich, dass es wahrscheinlich ein Problem mit mir der Schaffung eine neue Linie nach der Verwendung von BufferedWriter#write
haben würde, also versuchte ich meine BufferedWriter Spülung, bevor sie eine neue Linie zu schaffen. Es hat nicht funktioniert ...
PS: Der ganze notwendige Code:
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;
}
Welche Bibliothek verwenden Sie für die base64-Codierung? 'Base64' ist nicht der Base64-Encoder, der in Java 8 eingebaut ist. –