打包 JavaFX 项目后无法读取 UTF-8 文件
Can't read UTF-8 file after packaging JavaFX project
我的项目必须读取以 UTF-8 编码的文本文件。
当我 运行 我在 NetBeans 中的程序时,一切正常,并且从文件中正确读取了字符。但是当我 运行 我的 .exe
打包程序时,字符不是他们应该的。
我的代码:
BufferedReader br = new BufferedReader(new FileReader("D:\sa\shlah.txt" ));
String s = br.readLine();
BufferedReader br1 = new BufferedReader(
new UTF8Reader(new FileInputStream(shlahFile)));
上面的代码使用了 UTF8 阅读器,即使您已经打包了程序,它也能正常工作。
我想这是不同默认编码的问题...
指定要使用的编码应该可以解决您的问题。这可以通过使用 Files.newBufferedReader
:
在不使用外部库的情况下实现
BufferedReader br = Files.newBufferedReader(new File("D:\sa\shlah.txt").toPath(), StandardCharsets.UTF_8);
我的项目必须读取以 UTF-8 编码的文本文件。
当我 运行 我在 NetBeans 中的程序时,一切正常,并且从文件中正确读取了字符。但是当我 运行 我的 .exe
打包程序时,字符不是他们应该的。
我的代码:
BufferedReader br = new BufferedReader(new FileReader("D:\sa\shlah.txt" ));
String s = br.readLine();
BufferedReader br1 = new BufferedReader(
new UTF8Reader(new FileInputStream(shlahFile)));
上面的代码使用了 UTF8 阅读器,即使您已经打包了程序,它也能正常工作。
我想这是不同默认编码的问题...
指定要使用的编码应该可以解决您的问题。这可以通过使用 Files.newBufferedReader
:
BufferedReader br = Files.newBufferedReader(new File("D:\sa\shlah.txt").toPath(), StandardCharsets.UTF_8);