<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
<version>2.13.0</version>
</dependency>
</dependencies>
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.cbor.CBORFactory;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class LargeDatasetHandler {
private final ObjectMapper objectMapper;
public LargeDatasetHandler() {
this.objectMapper = new ObjectMapper(new CBORFactory());
}
public void saveData(List<DataRow> data, String filePath) throws IOException {
objectMapper.writeValue(new File(filePath), data);
}
public List<DataRow> loadData(String filePath) throws IOException {
return objectMapper.readValue(new File(filePath), objectMapper
.getTypeFactory()
.constructCollectionType(List.class, DataRow.class));
}
public static void main(String[] args) throws IOException {
LargeDatasetHandler handler = new LargeDatasetHandler();
List<DataRow> data = new ArrayList<>();
data.add(new DataRow("John Doe", 25));
data.add(new DataRow("Jane Smith", 30));
data.add(new DataRow("Michael Johnson", 35));
handler.saveData(data, "data.cbor");
List<DataRow> loadedData = handler.loadData("data.cbor");
for (DataRow row : loadedData) {
System.out.println(row);
}
}
}
class DataRow {
private String name;
private int age;
public DataRow() {
}
public DataRow(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "DataRow{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
DataRow{name='John Doe', age=25}
DataRow{name='Jane Smith', age=30}
DataRow{name='Michael Johnson', age=35}