以下是代码:
public class Test {
public static void main(String[] args) throws IOException {
GalaxyBaseClient client = new GalaxyBaseClient("localhost", 8180);
String query = "g.V().hasLabel('person').has('age', gt(20)).values('name', 'age');";
GremlinResultSet result = client.submit(query);
FileWriter fw = null;
try {
fw = new FileWriter("test.csv");
String[] columnNames = {"name", "age"};
for (int i = 0; i < columnNames.length; i++) {
fw.write(columnNames[i]);
if (i < columnNames.length - 1) {
fw.write(",");
}
}
fw.write("\n");
while (result.hasNext()) {
Object[] values = result.next();
for (int i = 0; i < values.length; i++) {
Object value = values[i];
fw.write(value.toString());
if (i < values.length - 1) {
fw.write(",");
}
}
fw.write("\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fw != null) {
fw.close();
}
result.close();
client.close();
}
}
}
你应该是这行代码的问题:
在你的代码中,出现属性值为科学计数法的情况,可能是因为你使用了 toString() 方法将查询结果的值转换为字符串,并写入到文件中。在这个过程中,Java 可能会自动将一些数值转换为科学计数法的形式。
为了避免这个问题,你可以使用 String.format() 方法来将数值转换为固定的格式。例如,你可以使用以下代码将数值转换为不带科学计数法的形式:
String valueStr = String.format("%.0f", value);
fw.write(valueStr);
这里的 %.0f 表示将数值格式化为不带小数位的浮点数形式。你可以根据需要调整这个格式字符串的内容,以满足你的实际需求。
可以 new BigDecimal("1.111111").toString();