gpt4 book ai didi

Java 文件输出与控制台不匹配?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:57:06 25 4
gpt4 key购买 nike

我一直在做这个项目,它做一些事情(这无关紧要)然后以以下格式输出结果:###x###x#### :或一些由小写字母分隔的整数字母 x,然后是更多整数,以字母 x 结尾。

我将输出写入控制台,数据看起来不错。我写入一个文本文件,用记事本打开时,它要么是汉字,要么是乱码。当我在 Notepad++ 中打开文件时,结果很好。我已经为 java 尝试了我能想到的每一种输出,并更改了编码,但结果都是一样的。我错过了什么?

我知道这不是最接近最优的,也不是你“应该输出”的方式,这是在多次测试强制转换和连接的奇怪边缘情况以查看是否有效之后的迭代。

public static void printMap() throws IOException {
//PrintWriter out = new PrintWriter("VertCover.txt", "UTF-8");
//Charset charset = Charset.forName("UTF-8");
//BufferedWriter out = new BufferedWriter(new FileWriter(new File("VertCover.txt")));
Charset UTF8 = Charset.forName("UTF-8");
Writer out = new OutputStreamWriter(new FileOutputStream("VertCover.txt"), UTF8);
int counter = 0;
String test = "";
if (REDCOUNT < BLUECOUNT) {
for (Entry<Integer, MapPoint> entry: pointMap.entrySet()) {
if (entry.getValue().getColor() == -1) {
test += entry.getKey().toString() + "x";
counter++;
}
}
}
else {
for (Entry<Integer, MapPoint> entry: pointMap.entrySet()) {

if (entry.getValue().getColor() == 1) {
test += entry.getKey().toString() + "x";
counter++;
}
}
System.out.println();
System.out.println();
System.out.println();
System.out.println(counter);
out.write(test);
System.out.println(test);

}
out.flush();
out.close();
}

当前的文本文件输出:...ㄱㅸ炮㌱㉸破㘲㉸破ㄳㄳ㍸炮㐳㑸破㑸破㘴㑸破㐵㕸砸〶㙸破㈶㙸破㔶㙸破㤶㝸砰ㄷ㝸炸㔷㡸砰㔸㥸砰ㄹ...

entry.getKey() 是一个整数:输出应该看起来像 123x4654x321x968735x168

最佳答案

好吧,如果你的文本文件的前 8 位是十六进制并且碰巧匹配另一个随机编码代码,Windows 中的记事本会改变你的文本文件编码。所以改变第一个字符,或者在里面放一个打印行

关于Java 文件输出与控制台不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33359374/

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