Программисты JAVA общаются здесь
-
Anonymous
При использовании Джексона для сериализации все записанное содержимое файла имеет номер 0x00.
Сообщение
Anonymous »
Код: Выделить всё
public static void writeRecordHeadInfo(String rootPath, RecordHeadInfo recordHeadInfo) {
if (recordHeadInfo == null) {
return;
}
if (recordHeadInfo.getCreateDeviceHostId() == null || recordHeadInfo.getCreateDeviceHostId().isBlank()) {
recordHeadInfo.setCreateDeviceHostId(SaveUtil.getString(DataKeyEnum.HOST_ID));
recordHeadInfo.setCreateDeviceName(Properties.LOCAL_DEVICE_NAME);
}
Path filePath = Path.of(rootPath, RECORD_HEAD_INFO_JSON);
filePath.toFile().getParentFile().mkdirs();
try (FileChannel channel = FileChannel.open(filePath, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING)) {
Thread.sleep(1000);
ObjectMapper objectMapper = new ObjectMapper();
var buffer = ByteBuffer.wrap(objectMapper.writeValueAsBytes(recordHeadInfo));
int size = channel.write(buffer);
} catch (IOException e) {
log.error("", e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
Возможно ли, что использование приведенного выше кода для сериализации приведет к тому, что записанное содержимое файла будет состоять из 0x00?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... s-all-0x00
1761537637
Anonymous
[code]public static void writeRecordHeadInfo(String rootPath, RecordHeadInfo recordHeadInfo) {
if (recordHeadInfo == null) {
return;
}
if (recordHeadInfo.getCreateDeviceHostId() == null || recordHeadInfo.getCreateDeviceHostId().isBlank()) {
recordHeadInfo.setCreateDeviceHostId(SaveUtil.getString(DataKeyEnum.HOST_ID));
recordHeadInfo.setCreateDeviceName(Properties.LOCAL_DEVICE_NAME);
}
Path filePath = Path.of(rootPath, RECORD_HEAD_INFO_JSON);
filePath.toFile().getParentFile().mkdirs();
try (FileChannel channel = FileChannel.open(filePath, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING)) {
Thread.sleep(1000);
ObjectMapper objectMapper = new ObjectMapper();
var buffer = ByteBuffer.wrap(objectMapper.writeValueAsBytes(recordHeadInfo));
int size = channel.write(buffer);
} catch (IOException e) {
log.error("", e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
[/code]
Возможно ли, что использование приведенного выше кода для сериализации приведет к тому, что записанное содержимое файла будет состоять из 0x00?
[img]https://i.sstatic.net/nFc1LaPN.png[/img]
Подробнее здесь: [url]https://stackoverflow.com/questions/79801438/when-using-jackson-for-serialization-the-written-file-content-is-all-0x00[/url]