【问题标题】:Is there a reason why the BufferedWriter writes sumbols instead of numbers?BufferedWriter 写 sumbols 而不是数字有什么原因吗?
【发布时间】:2019-02-01 16:07:20
【问题描述】:

我正在尝试将一个二维数组从数字写入文件,但它只写入 1 的 (SOH)、5 的 (ENO) 和 0(NUL) 的空格。 我从 NotePad++ 收到了这些信件

    int[][] array= new int[][]
    {
          { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
          { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
          { 1, 0, 0, 0, 5, 0, 0, 0, 0, 1 },
          { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
          { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
    };
     String level = "Level.txt";
     try (BufferedWriter writer = Files.newBufferedWriter(Paths.get(level))) {
         for(int i=0;i<masiv1.length;i++)
         {
             for(int j=0;j<array[i].length;j++)
             {
                 writer.write(array[i][j]);
             }
             writer.write("\n");
         }
     }

如果可能,我想将数字写入文件。

【问题讨论】:

  • 一些建议:阅读您调用的方法的文档;知道他们在做什么。如果您将鼠标悬停在 IDE 应该显示的方法上。

标签: java bufferedwriter


【解决方案1】:

您正在调用Writer.write(int),它会向作者写入一个字符。

如果您想要一个数字的字符串表示,您需要确保先转换为字符串并调用Writer.write(String)。最简单的方法是调用String.valueOf 来执行转换:

writer.write(String.valueOf(array[i][j]));

【讨论】:

  • 谢谢!它解决了我的问题!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2014-08-25
  • 2012-09-16
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
相关资源
最近更新 更多