【问题标题】:Create Colums in CSV file with JAVA使用 JAVA 在 CSV 文件中创建列
【发布时间】:2015-05-13 15:02:01
【问题描述】:

我是一名 Java 初学者,也是一名地理专业的学生。

我正在使用 IntelliJ 从包含坐标、时间戳等各种信息的 XTF 图像中导出数据...

这是我的代码:

FileWriter writer = new FileWriter( "DonneesPings1.csv" );
FileWriter writer2 = new FileWriter( "DonneesPings2.csv" );
writer.write( "X,Y\n" );
int limit = 0;
for (XtfPing ping : xtf.getPings())
{
    if ( limit < 10000 )
    {
        writer.write( Double.toString( ping.x ) );
        writer.write( "," );
        writer.write( Double.toString( ping.y ) );
        writer.write( "\n" );
    }
    else {
        writer2.write( Double.toString( ping.x ) );
        writer2.write( "," );
        writer2.write( Double.toString( ping.y ) );
        writer2.write( "\n" );
    }
    limit++;
}
writer.close();

上面的 sn-p 创建了两个 .csv 文件(“DonneesPings1.csv”和“DonneesPings2”),但它的格式不好。数据只放在一列中,以逗号作为分隔符。

例子:

Column A
    X,Y
    0.000000000,-00.00000000
    0.022222222,-02.00000000

我希望 x 坐标位于一列中,y 坐标位于另一列中。

例子:

   Column A          Column B
      X                 Y
0.000000000       -00.00000000
0.022222222       -02.00000000

我可以在 Excel 中完成,但我想使用 IntelliJ 以编程方式完成。

【问题讨论】:

  • 也许我遗漏了一些东西,但你所拥有的看起来就像你想要的。 “不好”示例中的值在两列中。
  • CSV 的替代方案包括:1) 制表符分隔的值,这将允许您导入 Excel,以及 2) 格式化的文本字段,您可以使用 String.format() 来完成。
  • Excel 将接受任何字符作为分隔符。制表符和逗号是常用的。

标签: java excel csv intellij-idea


【解决方案1】:

CSV 代表逗号分隔值。逗号可以被认为是列分隔符。您的“坏示例”一个两列文件,并且您的代码正在正确写入值。

X,Y  // <- 2 columns
0.000000000,-00.00000000 // <- 2 columns
0.022222222,-02.00000000 // <- 2 columns

如果您想要像您的“好”示例一样以纯文本形式呈现视觉布局,您可以使用 String.format 或类似的东西,但生成的文件不会是真正的 CSV。

【讨论】:

  • 你是对的,所以它不会在视觉上分成两列,但如果我想重用这些数据,我的 IDE 会理解,由于逗号分隔符,它就像有两列一样工作,对吗?
  • @Manimalis 我不确定您为什么要将 CSV 提供给 IDE。 IDE 用于开发应用程序,通常不消耗应用程序输出。您打算如何处理生成的 CSV?
【解决方案2】:

您可以使用String.format("%-30s, Double.toString(ping.x) ) 在 30 个字符上写一行。空的将用空白空间填充。抱歉,我不知道有什么技巧可以让你的字符串居中。

查看Formatter 课程以了解有关格式化字符串的更多信息。


但是,正如 MadConan 所说,您的“不好的例子”是一个格式良好的 CSV。您想要的不是正确的 CSV,因为它没有任何字符来分隔您的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多