用UCS-2 Little Endian,Java写文本文件

我正在尝试编写.txt文件,它必须是UCS-2 Little Endian,但是当我尝试

writer = new PrintWriter(path, "UTF-16LE");

根据我的阅读,它应该是相同的,但在服务器上的特定应用程序中将无法使用。当我在Notepad ++中打开可以正常工作(手动创建)的文件时,它说它是“

UCS-2 Little Endian”,但是用Java这样创建时,它说“ UCS-2 LE w / o BO”,服务器无法读取它。

我该怎么写才能使用?这是完整的代码:

writer = new PrintWriter(path, "UTF-16LE");

for (int j = (i - itemsInPlaylist + 1); j <= i; j++) {

writer.println(listParsedFile.get(j).getNameOfFile());

}

itemsInPlaylist = 0;

writer.close();

感谢您的任何建议。

回答:

听起来您需要先写一个字节顺序标记,以便您的应用程序可以检测到编码。(尚不清楚“它说”的意思-

显然无论“它”是什么,都可以猜测它是UTF-16LE,但可靠性不及获得BOM时的可靠性。)

因此,只需添加:

writer.write("\uFEFF");

在你写其他东西之前。

以上是 用UCS-2 Little Endian,Java写文本文件 的全部内容, 来源链接: utcz.com/qa/410345.html

回到顶部