gpt4 book ai didi

java - 如何使 DataOutputStream 将 boolean 值或整数写入 txt 文件?

转载 作者:行者123 更新时间:2023-12-01 10:45:52 25 4
gpt4 key购买 nike

public static void outputFile() {
HabitItem it;
try {
File path = new File("output.txt");
FileOutputStream fout = new FileOutputStream(path);
DataOutputStream dos = new DataOutputStream(fout);
while (!stackHabitItems.isEmpty()) {
it = stackHabitItems.pop();
dos.writeChars("<\n");
for(int i = 0; i < 7; i++) {
if (it.isDayCompleted[i]) {
dos.writeInt(1);
}
else {
dos.writeInt(0);
}
}
dos.writeChars("\n");

dos.writeInt(it.id);

dos.writeChars("\\>\n");
}
fout.close();
}
catch (Exception e) {
System.out.println("Failed to open file output.txt");
}
}

我想做的就是将一个 boolean 数组和一个整数写入

包含的文件中

我的文件可能如下所示(假设一次迭代) < 1 0 1 0 0 0 1 42 >

但是 dos.writeInt 无法产生正常输出。相反,它显示 <
 >空白处由方 block 填充

为什么我的代码不起作用?我觉得我正确使用了 DataOutputStream。

最佳答案

直接尝试 PrintStream 或您的 FileOutputStream,它将产生人类可读的结果。

您可以这样尝试(int之间可能仍需要分隔符)

public static void outputFile() {
File path = new File("output.txt");
try (FileOutputStream fout = new FileOutputStream(path);
PrintWriter dos = new PrintWriter(fout)) {
while (!stackHabitItems.isEmpty()) {
HabitItemit = stackHabitItems.pop();
dos.println("<");
for(int i = 0; i < 7; i++) {
if (it.isDayCompleted[i]) {
dos.print(1);
}
else {
dos.print(0);
}
}
dos.println();

dos.print(it.id);

dos.println("\\>");
}
} catch (Exception e) {
System.out.println("Failed to open file output.txt");
}
}

关于java - 如何使 DataOutputStream 将 boolean 值或整数写入 txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34173501/

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