Я пытаюсь получить мой файл odt в ByteArray для его отправки на мой сервер. Думаю, я нашел способ, как это сделать здесь: How can I generate Byte array from an ODT file java.ODT File to Byte Array Java
Но одна проблема У меня есть, как я могу использовать это в файле, который в настоящее время открыт в Writer, потому что я хочу, чтобы все это произошло, когда я нажимаю кнопку?
Пробовал это Адрес этого файла:
//Abspeichern des Documents im Temp Ordner
String storeUrl = "file:///C:/Windows/Temp/Test.odt";
XModel xDocModel = this.frame.getController().getModel();
XTextDocument xTextDocument = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class, xDocModel);
XStorable xStorable = (XStorable) UnoRuntime.queryInterface(XStorable.class, xTextDocument);
PropertyValue[] storeProps = new PropertyValue[1];
storeProps[0] = new PropertyValue();
storeProps[0].Name = "Overwrite";
storeProps[0].Value = new Boolean(true);
try {
xStorable.storeToURL(storeUrl, storeProps);
} catch (com.sun.star.io.IOException ex) {
Logger.getLogger(OptionPageDemo.class.getName()).log(Level.SEVERE, null, ex);
}
//Konvertieren in byte[]
Path Test = Paths.get("C:/Windows/Temp/Test.odt");
byte[] data = Files.readAllBytes(Test);
Но это не похоже на работу.
Так может быть, вы можете сказать мне, как я могу Адрес Файл :)
Ok спасибо. Но разве я не могу сделать это, не сохраняя файл на моем диске? это было бы намного лучше. Найден метод readFileToByteArray(); Но он не может использовать его в моем xtextdocument. – FreeKill
Насколько я знаю, единственный способ - сохранить файл. В документации [readFileToByteArray()] (https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#readFileToByteArray (java.io.File)): Читает содержимое файла в массив байтов. " Он принимает параметр [java.io.File] (http://docs.oracle.com/javase/6/docs/api/java/io/File.html?is-external=true), поэтому он находится на диск. –
Во всяком случае, почему было бы «намного лучше» не сохранять на диск? В этом случае, зачем нужен массив байтов? [XStorable] (https://www.openoffice.org/api/docs/common/ref/com/sun/star/frame/XStorable.html#storeToURL) должен принять адрес сервера. –