2016-10-24 3 views
0

У меня есть класс Java ниже:Написание Java obejct в .csv

class DeviceUser{ 
private String d1; 
@CsvBind 
private Long u1; 
@CsvBind 
private Long lt; 
@CsvBind 
private DeviceUser ref; 
//getters and setters 
} 

Я хочу, чтобы записать данные, хранящиеся в объекте DeviceUser, в файл .csv.

Можете ли вы мне помочь?

вывод должен быть:
output.csv:
DeviceId, 6111,1200, DeviceId, 6111,1200,

+1

Вы пробовали что-нибудь? Пожалуйста, напишите свой код с вашей попытки (даже если она не работает), поэтому люди знают, что вы не хотите, чтобы кто-то сделал это за вас. Googling Я легко нашел это: http://howtodoinjava.com/3rd-party/parse-read-write-csv-files-opencsv-tutorial/ – Tom

+0

ниже, sol работает нормально с объектом ref – sachin10

ответ

2

К вашему классу добавить следующий метод:

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. Я бы порекомендовал Google Gson.

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

Спасибо за rply .. – sachin10

+0

Спасибо для ответа , но из-за ссылки, он печатает этот объект дважды. – sachin10

+0

- ссылка на сам объект или на другой объект? – xenteros

Смежные вопросы