使用 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 字符。

根据您要写入的文件类型,我假设您希望将整数写入字符串。所以你在编写之前做了正确的转换。