gpt4 book ai didi

Java:从格式奇怪的文件结果中读取文本

转载 作者:行者123 更新时间:2023-11-29 05:43:10 24 4
gpt4 key购买 nike

通常,当我阅读文本文件时,我会这样做:

 File file = new File("some_text_file.txt");
Scanner scanner = new Scanner(new FileInputStream(file));
StringBuilder builder = new StringBuilder();
while(scanner.hasNextLine()) {
builder.append(scanner.nextLine());
builder.append('\n');
}
scanner.close();
String text = builder.toString();

可能有更好的方法,但这种方法一直对我很有效。

对于我现在的工作,我需要读取一个大文本文件(大小超过 700 KB)。以下是在记事本(任何 Windows 操作系统的标准配置)中打开时的文本示例:

"lang"
{
"Language" "English"
"Tokens"
{
"DOTA_WearableType_Daggers" "Daggers"
"DOTA_WearableType_Glaive" "Glaive"
"DOTA_WearableType_Weapon" "Weapon"
"DOTA_WearableType_Armor" "Armor"

但是,当我使用上面提供的方法从文件中读取文本时,输出是:

Sample output

由于某种原因我无法粘贴输出。我也试过像这样读取文件:

 File file = new File("some_text_file.txt");
Path path = file.toPath();
String text = new String(Files.readAllBytes(path));

...结果没有变化。

为什么输出不符合预期?我还尝试阅读我编写的文本文件,它运行良好。

最佳答案

看起来像是编码问题。使用可以检测编码的工具打开文件(如 Notepad++)并查找其编码方式。然后对 Scanner 使用另一个构造函数:

Scanner scanner = new Scanner(new FileInputStream(file), encoding);

或者您可以简单地试验一下,尝试不同的编码。对我来说它看起来像 UTF-16。

关于Java:从格式奇怪的文件结果中读取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16829549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com