У нас есть процесс Java (см. Ниже) для генерации DOC, DOCX, XLS, XLSX и HTML и сохранения его на наших компьютерах с Linux.Он хорошо работал на нашей старой машине AIX 3.5;но в нашей новой машине RHEL 7.5, проприетарных форматах документов Microsoft (DOCX, DOC, XLSX и XLS), ее выходные данные повреждены.Файлы HTML не повреждены.
Я загрузил выходные файлы на ПК с Windows и попытался открыть их;Ошибки исключения говорят о том, что файлы DOC / DOCX / XLS / XSLX повреждены и не могут быть открыты.
Код Java хорошо работает на старом ПК с Linux.Я предполагаю, что на новом ПК могут быть установлены некоторые библиотеки или программное обеспечение.
Ниже приведен мой java-код (процесс создания файла)
int BUFFER_SIZE = 1024 * 256;
int bytesRead=0;
Resultset rs=obj.resultSet();
DocumentClass = new DocumentClass();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[BUFFER_SIZE];
BufferedInputStream bis = new BufferedInputStream(rs.getBinaryStream(1));
try
{
bytesRead = bis.read(buffer,0,BUFFER_SIZE);
while (bytesRead > 0)
{
baos.write(buffer, 0, bytesRead);
buffer = new byte[BUFFER_SIZE];
bytesRead = bis.read(buffer,0,BUFFER_SIZE);
}
}
catch (IOException io )
{
System.out.println(io.getMessage());
}
DocumentClass.setFileBody(baos);
BufferedWriter CreateDoc = new BufferedWriter(new FileWriter("/usr/Test.docx"));
CreateDoc.write(DocumentClass.getFileBody().toString());
CreateDoc.close();