【问题标题】:Issues of saving a matrix to a csv file将矩阵保存到 csv 文件的问题
【发布时间】:2011-06-07 21:20:29
【问题描述】:

我正在尝试将整数矩阵保存到 csv 文件中。我的代码如下。

try
    {
      FileWriter writer = new FileWriter("test.csv");          
         for(int i = 0; i < row; i++)
         {
            for (int j=0; j<(column-1); j++)
             {
                 writer.append(Matrix[i][j]);
                 writer.append(',');
             }
               writer.append(Matrix[i][j]);
               writer.append('\n');
               writer.flush();
         }
         writer.close();
      }        
    catch(Exception e)
    {
      e.printStackTrace();
    }

但是,Eclipse 给出以下错误消息:

Writer 类型中的方法 append(CharSequence) 不是 适用于参数(int)

如何解决这个问题?谢谢。

【问题讨论】:

  • 样式注释 - 不要以首字母大写命名实例变量(矩阵)。这就是你应该命名类的方式。
  • 此外,还有 CSV 实用程序可以帮助您避免编写此类代码。例如,请参阅 ostermillerutils (ostermiller.org/utils/CSV.html)

标签: java eclipse csv


【解决方案1】:

将您的呼叫更改为 append(Matrix[i][j])append(String.valueOf(Matrix[i][j])append("" + Matrix[i][j])。问题(正如错误消息指出的那样)是您试图附加一个整数,但 append 方法只采用一个 CharSequence (即一个字符串)。我提出的两种解决方案都将整数/数字类型强制转换为字符串。

【讨论】:

    【解决方案2】:

    正如@I82Much 提到的,另一种方法是使用write(对于,,以避免创建字符串)。此外,您在 for 循环之外使用 j,因此您还需要在外部声明它:

    int j;
    for (j=0; j<(column-1); j++)
    {
        writer.append(Matrix[i][j]);
        writer.append(',');
    }
    writer.append(Matrix[i][j]);
    

    【讨论】:

      【解决方案3】:

      其他答案都很好,另一种方法是使用

      writer.append(Integer.toString(Matrix[i][j]));
      

      正如@MByD 所说,如果您在循环外使用它,则必须在循环外声明j

      【讨论】:

        猜你喜欢
        • 2016-01-16
        • 2011-11-13
        • 2015-10-18
        • 2015-03-28
        • 2021-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多