Mình muốn chuyển List thành file nên đã dùng json để thực hiện
@SuppressWarnings("unchecked")
public void writeToFile() {
List<Student> students = new Students().getStudent();
JSONArray studentList = new JSONArray();
for(Student st : students){
JSONObject obj = new JSONObject();
obj.put("id",st.getId());
obj.put("firstName",st.getFirstName());
obj.put("lastName",st.getLastName());
obj.put("address",st.getAddress());
obj.put("email",st.getEmail());
obj.put("className",st.getClassName());
studentList.add(obj);
}
try (FileWriter file = new FileWriter("students.json")) {
// We can write any JSONArray or JSONObject instance to the file
file.write(studentList.toJSONString());
file.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
public void readToFile(){
//JSON parser object to parse read file
JSONParser jsonParser = new JSONParser();
try (FileReader reader = new FileReader("students.json"))
{
//Read JSON file
Object obj = jsonParser.parse(reader);
JSONArray studentList = (JSONArray) obj;
Iterator<JSONObject> iterator = studentList.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
Vấn đề mình gặp phải là khi in ra màn hình thì nó sắp xếp không theo ý muốn của mình
{"lastName":"a","firstName":"a","address":"a","className":"a","id":1,"email":"a"}
Và mình muốn tách từng trường ra thành dòng riêng như
id:1
fisrtName:a
lastName:a
address:a
email:a
className:a