Je suis en train d'écrire un programme de "vérification de texte" en Java, mais je me suis bloqué en créant un identifiant unique pour chaque fichier.Java: BufferdWriter imprime une chaîne en deux lignes sans raison?
En fait, je crée un nouvel identifiant comme celui-ci:
String identifier = Base64.encode((dateFormat.format(date) + "#" + uuid.toString() + "#" + name+".sc0").getBytes()).replace("=", "");
Aussi mon programme crée un nouveau fichier et ouvre un BufferedWriter. En fait, quand je vais maintenant essayer d'ajouter (. J'essayé d'utiliser BufferedWriter#write
, aussi, mais ça n'a pas marché non plus)
Si j'écris cette chaîne dans le fichier maintenant, il ressemble à ceci:
BlMjAxNi8wMy8zMSAyMDo0MjowOSMzMThhYjRkNS0yNjFhLTQwNjItODkyOS03NzlkZDIyOWY4Nj
dGVzdC5zYzA
mais il devrait être dans une seule ligne comme ceci:
BlMjAxNi8wMy8zMSAyMDo0MjowOSMzMThhYjRkNS0yNjFhLTQwNjItODkyOS03NzlkZDIyOWY4NjdGVzdC5zYzA
Au début, je pensais que ce serait probablement un problème avec moi la création d'une nouvelle ligne après avoir utilisé BufferedWriter#write
, alors j'ai essayé chasse mon BufferedWriter avant de créer une nouvelle ligne. Il n'a pas non plus ...
PS: L'ensemble du code neccessary:
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;
}
Quelle bibliothèque utilisez-vous pour encoder en base64? 'Base64' n'est pas l'encodeur base64 intégré dans Java 8. –