Вот мой поток кода, для которого содержимое файла теряется, и я думаю, что может быть проблема с строкой IOUtils.toByteArray (), пожалуйста, укажите, что на самом деле идет не так.
Потеряно содержимое файла:
InputStream stream = someClient.downloadApi(fileId);
byte[] bytes = IOUtils.toByteArray(stream);
String mimeType = CommonUtils.fileTypeFromByteArray(bytes);
String fileExtension=FormatToExtensionMapping.getByFormat(mimeType).getExtension();
String filePath = configuration.getDownloadFolder() + "/" ;
String fileName = UUID.randomUUID() + fileExtension;
File file = new File(filePath+fileName);
file.createNewFile();
FileUtils.copyInputStreamToFile(stream,file);
int length = (int)file.length();
Теперь значение длины здесь 0 в основном без содержимого. Позвольте мне сказать вам, что inputStream, полученный от downloadApi (), имеет контент, который наверняка предоставлен. Но если я попробую приведенную ниже модификацию в коде, я получу длину файла.
Содержимое файла НЕ теряется:
InputStream stream = someClient.downloadApi(fileId);
byte[] bytes = IOUtils.toByteArray(stream);
String mimeType = CommonUtils.fileTypeFromByteArray(bytes);
String fileExtension=FormatToExtensionMapping.getByFormat(mimeType).getExtension();
String filePath = configuration.getDownloadFolder() + "/" ;
String fileName = UUID.randomUUID() + fileExtension;
stream = new ByteArrayInputStream(bytes); //Again converted bytes to stream
File file = new File(filePath+fileName);
file.createNewFile();
FileUtils.copyInputStreamToFile(stream,file);
int length = (int)file.length();
Теперь я получаю содержимое файла. Может ли какой-нибудь орган сказать, что технически не так в первом фрагменте кода?
ТИА