FileOutputStream将编码设置为utf-8

ist*_*rna 6 java utf-8

想要将文件设置为utf-8

FileOutputStream只需要两个参数

我的代码是

 PrintWriter kitaba1 = null;

    try {
       kitaba1 = new PrintWriter(new FileOutputStream(new File(ismmilaf), true ));

    } catch (FileNotFoundException ex) {
        ex.printStackTrace();
    }

    //kitaba1.println(moarif1);
    kitaba1.close();
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 6

您需要使用,OutputStreamWriter因此您可以指定输出字符集.然后,您可以将其包装在一个PrintWriter或者BufferedWriter如果您需要打印语义:

PrintWriter kitaba1 = null;

try {
   kitaba1 = new PrintWriter(new OutputStreamWriter(new FileOutputStream(new File(ismmilaf), true), StandardCharsets.UTF_8));

} catch (FileNotFoundException ex) {
    ex.printStackTrace();
}

//kitaba1.println(moarif1);
kitaba1.close();
Run Code Online (Sandbox Code Playgroud)

BufferedWriter kitaba1 = null;

try {
   kitaba1 = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(ismmilaf), true), StandardCharsets.UTF_8));

} catch (FileNotFoundException ex) {
    ex.printStackTrace();
}

//kitaba1.write(moarif1);
//kitaba1.newLine()
kitaba1.close();
Run Code Online (Sandbox Code Playgroud)


ass*_*ias 5

FileOutputStream 用于写入二进制数据。如果您想写入文本,可以使用 FileWriter 或 OutputStreamWriter。

或者,您可以使用类中Files的方法之一,例如:

Path p = Paths.get(ismmilaf);
Files.write(p, moarif1.getBytes(StandardCharsets.UTF_8));
Run Code Online (Sandbox Code Playgroud)