缓冲的写入器在文本文件上写入内存垃圾

时间:2013-08-02 11:49:08

标签: java int text-files jtextfield bufferedwriter

我的缓冲编写器在我的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个小时..

2 个答案:

答案 0 :(得分:1)

因为write()写了一个字符。

  

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

     

参数:

     

c - 指定要写入的字符

您可以使用Writer#write(String)

writer.write(String.valueOf(nodes));

答案 1 :(得分:1)

试试这个:

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

如果您正在使用节点或进行某种转义,那么您总是可以将写入提取到一个循环中,如果您通过将此写入此内容来解释您实际尝试实现的内容会更有帮助一个文件,我们可能会建议你。