Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在utf8中追加到文件_Java_Character Encoding_Append_Bufferedwriter - Fatal编程技术网

Java 在utf8中追加到文件

Java 在utf8中追加到文件,java,character-encoding,append,bufferedwriter,Java,Character Encoding,Append,Bufferedwriter,对于一个项目,我需要使用UTF-8编码附加到文本文件。 在我的研究中,我发现了两种可能性: BufferedWriter out = new BufferedWriter( new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8") ) 这将以UTF-8格式写入我的文件,但它将覆盖它,而不是附加到它(如果它已经存在) 然后,我在FileWriter中找到了一段代码,该代码通过一个参数指向一个现有文件,但它不会明确使用

对于一个项目,我需要使用UTF-8编码附加到文本文件。 在我的研究中,我发现了两种可能性:

BufferedWriter out = new BufferedWriter(
    new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8")
)
这将以UTF-8格式写入我的文件,但它将覆盖它,而不是附加到它(如果它已经存在)

然后,我在FileWriter中找到了一段代码,该代码通过一个参数指向一个现有文件,但它不会明确使用UTF-8,而是使用默认的系统字符集:

BufferedWriter out = new BufferedWriter(new FileWriter("myfile.txt", true))
我现在需要定义编码和附加到文件的可能性。只需依靠系统编码或更改,这不是一个选项

有什么想法吗?

您忘了将true参数添加到FileOutputStream构造函数中:

BufferedWriter out=新的BufferedWriter 新的OutputStreamWriter new FileOutputStreamfile.txt,true,//true以追加 StandardCharsets.UTF_8//集合编码 ; 您忘记将true参数添加到FileOutputStream构造函数:

BufferedWriter out=新的BufferedWriter 新的OutputStreamWriter new FileOutputStreamfile.txt,true,//true以追加 StandardCharsets.UTF_8//集合编码 ;
看这个答案:看这个答案:呸!显然,我没有在FileOutputStream上设置它,我只查看了FileWriter选项。duh!显然,我没有在FileOutputStream上设置它,我只查看了FileWriter选项。
try {
    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("myFile.txt", true), "UTF-8"));
    out.write("Hello World");
    out.close();
} catch (IOException e) {
    e.printStackTrace();
}