gpt4 book ai didi

java - 获取 "java.nio.charset.UnmappableCharacterException: Input length = 1"

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:48 25 4
gpt4 key购买 nike

我在 collect() 方法调用(或 toList() 调用)中遇到 UnmappableCharacterException:

    private static void handleTransaction(Path a_filePath, String a_sTrasactionName, String a_sTransactionFilePath) {

// read file into stream, try-with-resources
try (Stream<String> stream = Files.lines(Paths.get(a_filePath.toString()), Charset.defaultCharset())) {

List<String> list =
stream.filter(line -> (line.indexOf(a_sTrasactionName) > 0))
.collect(Collectors.toList());

list.forEach(line -> {

System.out.println(line);

try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(_FILES_PATH + a_sTransactionFilePath),Charset.defaultCharset(), StandardOpenOption.APPEND)) {
writer.write(line + "\n");
} catch (IOException e) {
e.printStackTrace();
}
});
} catch (IOException e1) {

e1.printStackTrace();
}

它曾经对我有用,但从那以后就再也没有了。

我读取的文件是在 solaris 上创建的 csv 文件。我在 Windows 2012 服务器上运行 jar

请问有什么建议吗?

谢谢。

最佳答案

The files I read are csv files which were created on solaris. I run the jar on Windows 2012 server

那么这可能就是问题所在。您正在使用平台默认编码来读取和写入文件。如果文件是在 Solaris 上创建的,那么很可能与您的 Windows 机器具有不同的平台默认编码。

如果您知道正在阅读的文件的编码,请指定它。

如果您要控制您正在读写的文件的编码,我强烈建议您使用 UTF-8,除非您有充分的理由不这样做。

在您正在阅读您知道使用平台默认编码的文件时使用Charset.default(),或者如果您正在编写一个您绝对想要使用平台默认编码的文件 - 并尽量避免使用后者。

(基本上,一切都以 UTF-8 编码的世界是一个更简单的世界……)

关于java - 获取 "java.nio.charset.UnmappableCharacterException: Input length = 1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35060011/

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