Je recherche une solution simple et fiable pour ajouter du texte à un fichier existant dans Java 8 à l'aide d'un Charset cs
spécifié. La solution que j'ai trouvée ici traite de la variable Charset
standard qui est un non-droit dans ma situation.
Une façon d’utiliser la version surchargée de Files.write
qui accepte un jeu de caractères :
import static Java.nio.charset.StandardCharsets.UTF_8;
import static Java.nio.file.StandardOpenOption.APPEND;
import static Java.nio.file.StandardOpenOption.CREATE;
List<String> lines = ...;
Files.write(log, lines, UTF_8, APPEND, CREATE);
Path path = Paths.get("...");
Charset charset = StandardCharsets.UTF_8;
List<String> list = Collections.singletonList("...");
Files.write(path, charset, list, StandardOpenOption.APPEND);
Sur la base de la réponse acceptée dans la question que vous avez indiquée:
try (PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myfile.txt", true), charset)))) {
out.println("the text");
} catch (IOException e) {
//exception handling left as an exercise for the reader
}
Vous pouvez utiliser la méthode append de Guava Class Files . Vous pouvez également consulter Java.nio.charset.Charset .