当前位置: 首页 > 知识库问答 >
问题:

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

姜运珧
2023-03-14

我试图写. txt文件,它必须是UCS-2小端,但当我尝试

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

据我所知,它应该是相同的,但它不会在服务器上的特定应用程序中工作。当我在记事本中打开工作(手动创建)的文件时,它说它是“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();

感谢您的任何建议。

共有2个答案

司空俊雅
2023-03-14

我在Jython上遇到了这个确切的问题。

关于Jython 2.5。乔恩·斯基特的回答不起作用。你需要

write('\xff\xfe')

希望这对其他人有帮助。

高嘉树
2023-03-14

听起来您需要先写一个字节顺序标记,这样应用程序才能检测编码。(还不清楚你所说的“它说”是什么意思——很明显,不管“它”是什么,都可以猜测它是UTF-16LE,但比你得到BOM时更不可靠。)

因此,只需添加:

writer.write("\uFEFF");

在你写其他东西之前。

 类似资料:
  • 问题内容: 我正在尝试编写.txt文件,它必须是UCS-2 Little Endian,但是当我尝试 根据我的阅读,它应该是相同的,但在服务器上的特定应用程序中将无法使用。当我在Notepad ++中打开可以正常工作(手动创建)的文件时,它说它是“ UCS-2 Little Endian”,但是用Java这样创建时,它说“ UCS-2 LE w / o BO”,服务器无法读取它。 我该怎么写才能使

  • 我有一个Go程序,可以读取类似以下代码的文本文件: 游乐场:https://play.golang.org/p/cnDOEFaT0lr 该代码适用于所有文本文件,除了用UCS-2小端编码的文件。如何将文件转换为UFT8格式以读取它?

  • 本文向大家介绍使用Python读写文本文件及编写简单的文本编辑器,包括了使用Python读写文本文件及编写简单的文本编辑器的使用技巧和注意事项,需要的朋友参考一下 学习raw_input和argv是学习读取文件的前提,你可能不能完全理解这个练习,所以认真学习并检查。如果不认真的话,很容易删除一些有用的文件。 这个练习包含两个文件,一个是运行文件ex15.py,一个是ex15_sample.txt。

  • 问题内容: 我如何将一个小的Endian二进制文件转换为大Endian二进制文件。我有一个用C编写的二进制二进制文件,我正在用Java的DataInputStream读取此文件,该文件以大端字节格式读取。我也看过ByteBuffer类,但不知道如何使用它来获得我想要的结果。请帮忙。 非常感谢 问题答案: 谷歌搜索了很多之后,我发现了一个具有SwappedDataInputStream类的Apach

  • 本文向大家介绍如何用python在Selenium中编写文本文件?,包括了如何用python在Selenium中编写文本文件?的使用技巧和注意事项,需要的朋友参考一下 通过首先创建一个txt文件并在其中包含内容,我们可以使用python在Selenium中编写文本文件。 首先,我们需要以写模式打开文件,并以文本文件的位置路径作为参数。有多种读取方法可以执行这些操作。 write()–将字符串写在一

  • 问题内容: 我正在尝试更改文本文件中的某些行,而不影响其他行。这就是文本文件“ text.txt”中的内容 我的目标是更改第4行和第5行,但其余部分保持不变。 即使代码有效,我想知道是否有更好,更有效的方法?是否可以仅通过行号读取文件? 问题答案: 您没有什么可以改善的。但是您必须将所有行都写入 一个新文件 ,无论已更改还是未更改。较小的改进将是: 使用该语句; 避免将行存储在列表中; 子句中不带