使用 BufferedWriter 在文件中写入整数
Writing an Integer in file with BufferedWriter
我有一个写文件的方法,但不知何故写 int
:
时遇到问题
public static void writeFile(int[] result) {
try {
FileWriter writer = new FileWriter("MyFileExample.txt", true);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
int counter = 0;
for (int j = 0; j < result.length; j++) {
if (result[j] != -1) {
counter++;
}
}
System.out.println(counter);
bufferedWriter.write(counter);
bufferedWriter.newLine();
for(int i = 0; i<result.length; i++) {
if (result[i] != -1) {
bufferedWriter.write(i + " ");
}
}
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
bufferedWriter.write(counter);
行没有写任何东西。只是一片空白。其余的写得非常好。我试着写 "test"
而不是 counter
,这也很好。
知道如何解决这个问题吗?
发生了什么,当您编写 int 而不将其转换为 String 时,它只是将 int 写为它的类型(int)。所以调用方法,例如如下:
writeFile(new int[] {1, 2, 3})
将以下字节写入文件:
03 00 01 02
如果您指的是 ASCII table,它们都是非原则 table 字符。
根据您要写入的文件类型,我假设您希望将整数写入字符串。所以你在编写之前做了正确的转换。
我有一个写文件的方法,但不知何故写 int
:
public static void writeFile(int[] result) {
try {
FileWriter writer = new FileWriter("MyFileExample.txt", true);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
int counter = 0;
for (int j = 0; j < result.length; j++) {
if (result[j] != -1) {
counter++;
}
}
System.out.println(counter);
bufferedWriter.write(counter);
bufferedWriter.newLine();
for(int i = 0; i<result.length; i++) {
if (result[i] != -1) {
bufferedWriter.write(i + " ");
}
}
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
bufferedWriter.write(counter);
行没有写任何东西。只是一片空白。其余的写得非常好。我试着写 "test"
而不是 counter
,这也很好。
知道如何解决这个问题吗?
发生了什么,当您编写 int 而不将其转换为 String 时,它只是将 int 写为它的类型(int)。所以调用方法,例如如下:
writeFile(new int[] {1, 2, 3})
将以下字节写入文件:
03 00 01 02
如果您指的是 ASCII table,它们都是非原则 table 字符。
根据您要写入的文件类型,我假设您希望将整数写入字符串。所以你在编写之前做了正确的转换。