将java对象写入.csv

将java对象写入.csv,java,file,opencsv,Java,File,Opencsv,我有下面的java类: class DeviceUser{ private String d1; @CsvBind private Long u1; @CsvBind private Long lt; @CsvBind private DeviceUser ref; //getters and setters } 我想将存储在DeviceUser对象中的数据写入.csv文件 输出应为: 输出.csv: deviceId,61111200,deviceId,61111200,向类中添加以下方法:

我有下面的java类:

class DeviceUser{
private String d1;
@CsvBind
private Long u1;
@CsvBind
private Long lt;
@CsvBind
private DeviceUser ref;
//getters and setters
}
我想将存储在DeviceUser对象中的数据写入.csv文件

输出应为:
输出.csv:

deviceId,61111200,deviceId,61111200,

向类中添加以下方法:

public String[] toArray() {
    String[] result = new String[6];
    result[0] = this.d1;
    result[1] = this.u2.toString();
    result[2] = this.lt.toString();
    result[3] = this.ref.getd1();
    result[4] = this.ref.getu2().toString();
    result[5] = this.ref.getlt().toString();
    return result;
}
现在使用以下命令:

 CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), ',');
 // feed in your array (or convert your data to an array)
 writer.writeNext(deviceUser.toArray());
 writer.close();
虽然它会起作用,但这不是你想要的方式。要将对象写入文件,最好编写JSON。我推荐
googlegson

Gson gson = new Gson();
gson.toJson(obj, new FileWriter("yourfile.csv"));

向类中添加以下方法:

public String[] toArray() {
    String[] result = new String[6];
    result[0] = this.d1;
    result[1] = this.u2.toString();
    result[2] = this.lt.toString();
    result[3] = this.ref.getd1();
    result[4] = this.ref.getu2().toString();
    result[5] = this.ref.getlt().toString();
    return result;
}
现在使用以下命令:

 CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), ',');
 // feed in your array (or convert your data to an array)
 writer.writeNext(deviceUser.toArray());
 writer.close();
虽然它会起作用,但这不是你想要的方式。要将对象写入文件,最好编写JSON。我推荐
googlegson

Gson gson = new Gson();
gson.toJson(obj, new FileWriter("yourfile.csv"));

感谢您的回复,但由于引用,它正在打印该对象两次。是对对象本身的引用还是对另一个对象的引用?我想要,deviceId,61111200,deviceId,61111200。但是如果是giving,deviceId,61111200,deviceId,61111200,deviceId,61111200,它可以是相同或不同的对象type@sachin10这是不可能的。我的代码打印6个值。你确定你在像我写的那样使用它吗?谢谢你的回复,但由于引用,它正在打印该对象两次。是对对象本身的引用还是对另一个对象的引用?我想要,deviceId,61111200,deviceId,61111200。但是如果是giving,deviceId,61111200,deviceId,61111200,deviceId,61111200,它可以是相同或不同的对象type@sachin10这是不可能的。我的代码打印6个值。你确定你用的是我写的吗?你试过什么吗?请从您的尝试中编写您的代码(即使不起作用),这样人们就知道您不希望有人为您这样做。通过谷歌搜索我很容易发现:下面,索尔与ref object合作得很好。你试过什么吗?请从您的尝试中编写您的代码(即使不起作用),这样人们就知道您不希望有人为您这样做。通过谷歌搜索,我很容易就发现了这一点:在下面,sol可以很好地处理ref对象