我正在读取一个文件并替换一些文本,然后逐行编写一个新文件。我使用以下代码来读取和写入文件。通常 CP1252 和 UTF-8 编码的文件没有问题,但是当我尝试读取以“UCS-2 LE BOM”编码的文件时,保存的文件以 BOM 字符开头并包含大量空白. 我知道这是由于编码造成的,但我不知道是否需要以不同的方式读取它或以不同的方式保存它。另外,我知道我可以在读入文件时设置编码,但是如何处理不同编码的文件而不知道是哪一个。在文件遇到我的 java 代码之前,我无法控制它。任何帮助表示赞赏,谢谢。
FileInputStream sourceFileInputStream = new FileInputStream(sourceFile);
DataInputStream sourceDataInputStream = new DataInputStream(sourceFileInputStream);
BufferedReader sourceBufferedReader = new BufferedReader(
new InputStreamReader(sourceDataInputStream));
FileWriter targetFileWriter = new FileWriter(new File(targetFileLocation));
BufferedWriter targetBufferedWriter = new BufferedWriter(
targetFileWriter);
.
.
.
targetBufferedWriter.write(newTextline);