首先,您需要调用
output.close()(或至少
output.flush()在重新打开文件进行输入之前调用。这可能是造成问题的主要原因。
然后,您不应该使用
FileReader或
FileWriter为此,因为它总是使用平台默认编码(通常不是UTF-8)。从文档中获取
FileReader:
此类的构造函数假定默认字符编码和默认字节缓冲区大小是适当的。
使用时,您有同样的问题
FileWriter。替换为:
BufferedReader br = new BufferedReader(new FileReader("DirectionResponse.xml" ));像这样:
BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("DirectionResponse.xml"), "UTF-8"));和类似的
fstream。



