0

我的缓冲作家正在我的 txt 文件中随机写入一些垃圾。我使用 int nodes = Integer.valueOf(NODES_TEXT_FIELD.getText());来存储一个应该只接受整数的 TextField 的值。

这是我的作家:

 private static void writeOnFile(BufferedWriter writer, int nodes){

           try {
               System.out.println(nodes);
               System.out.println("Last check before write");
                writer.write(nodes);
                System.out.println(nodes);
        } catch (IOException e) {

            JOptionPane.showMessageDialog(null, "Failed to write data on file");
                e.printStackTrace();            
        }      
       }

我的输出:

2
Last check before write
2

在我发现的文本文件中:'?(根据您输入的数字更改为另一个内存垃圾

有人知道可能出了什么问题吗?我在这里呆了5个小时直到现在..

4

2 回答 2

1

因为write()写一个字。

写入单个字符。要写入的字符包含在给定整数值的低 16 位中;16 个高位被忽略。

参数:

c - int 指定要写入的字符

您可以使用Writer#write(String)

writer.write(String.valueOf(nodes));
于 2013-08-02T11:52:33.967 回答
1

尝试这个:

Writer wr = new FileWriter("thefileToWriteTo.txt");
wr.write( String.valueOf(nodes) );
wr.close();

如果这是您对节点执行的操作或某种转义,您始终可以将写入提取到循环中,如果您通过将其写入文件来解释您实际尝试实现的目标,这将更有帮助,我们可能会就此向您提供建议。

于 2013-08-02T11:57:31.490 回答