2016-03-31 5 views
2

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; 
    } 
+0

Welche Bibliothek verwenden Sie für die base64-Codierung? 'Base64' ist nicht der Base64-Encoder, der in Java 8 eingebaut ist. –

Antwort

0

Es ist der Geber, nicht die BufferedWriter. Base-64-Codierung verwendet eine Zeilenlänge von (glaube ich) 72 Zeichen.

+0

danke, dass es gelöst ist! –