当前位置: 首页 > 面试题库 >

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

凌钊
2023-03-14
问题内容

我正在尝试编写.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");

在你写其他东西之前。



 类似资料:
  • 我试图写. txt文件,它必须是UCS-2小端,但当我尝试 据我所知,它应该是相同的,但它不会在服务器上的特定应用程序中工作。当我在记事本中打开工作(手动创建)的文件时,它说它是“UCS-2 Little Endian”,但当它在Java中像这样创建时,它说“UCS-2 LE w/o BO”,服务器无法读取它。 我怎么能写出来呢?这是整个代码: 感谢您的任何建议。

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

  • 问题内容: 我正在尝试编写一种方法(如果尚不存在),然后制作一个“ log.txt文件”,然后将其写入该文件。我遇到的问题是每次调用该方法时,它都会覆盖现有的日志。如何更改方法,以使它不会覆盖数据而是仅更新文件? 我的写入文件方法: 问题答案: 只需更改为

  • 我有一个程序从一个文本文件(目前有653行长)中读取,所有文件都用逗号分隔。但当我将文件保存到新位置时,它只保存了490行。新创建的文本文件中的最后一行似乎也被切成了两半。有什么问题吗? 这是我用来打开和排序列表中数据的代码: 以下是我用来保存文件的内容:

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

  • 问题内容: 我需要在文本文件的开头写入一些内容。我有一个包含内容的文本文件,我想在此内容之前写点东西。说我有; 先生,下午好,今天好吗? 我很好你怎么样? 感谢您的询问,我很棒 修改后,我希望它像这样: Page 1-Scene 59 25.05.2011 先生,下午好,今天好吗? 我很好你怎么样? 感谢您的询问,我很棒 刚刚组成的内容:)我如何以这种方式修改文本文件? 问题答案: 您无法真正 通