用JAVA在CSV文件中创buildColums

我是一名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(); 

上面的代码片断创build了两个.csv文件(“DonneesPings1.csv”和“DonneesPings2”),但是它的格式不好。 数据只能以逗号分隔。

例:

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

我想要x坐标在一列和y坐标在另一列。

例:

  Column A Column B XY 0.000000000 -00.00000000 0.022222222 -02.00000000 

我可以在Excel中创build,但是我想用IntelliJ以编程的方式来完成。

CSV代表逗号分隔值。 逗号可以被认为是列分隔符。 你的“不好的例子” 一个两列文件,你的代码正确地写入值。

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

如果你想要一些可视化的东西,比如你的“好”的例子,你可以使用String.format或类似的东西,但是生成的文件并不是真正的CSV。

你可以使用String.format("%-30s, Double.toString(ping.x) )来写一个30个字符的行,空的空格将被填充空格。对不起,我不知道任何诡计串。

查看Formatter类以了解更多关于格式化string的信息。


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