У меня есть Java-программа, которая использует DataInputStream
для хранения данных объекта.
Пример:
DataInputStream tInput = new DataInputStream(getClass().getResourceAsStream(aDirectory + "/ResultItemInfo.dat"));
this._text = tInput.readUTF();
this._image = tInput.readUTF();
this._audio = tInput.readUTF();
this._random = false;
if (tInput.read() == 1) {
this._random = true;
}
this._hasMenu = false;
if (tInput.read() == 1) {
this._hasMenu = true;
}
Ницца, не так ли?
Существует существующий набор данных, и теперь мне нужно добавить некоторые записи. Если инструмент, который я должен сделать, был написан на Java тоже, это было бы довольно легко. К сожалению, он написан на Python, поэтому я должен найти способ создания файлов, которые можно прочитать из приложения Java с помощью Python.
Есть ли простой способ сделать это?
В крайнем случае я мог:
Для строки, которая должна быть readUTF-способна, она должна содержать два байта счетчика, а затем столько же байтов кодированных данных UTF-8, что и счетчик.
Поэтому я предлагаю, чтобы этот фрагмент кода записывал строку unicode data
способ, которым мог читать readUTF()
:
encoded = data.encode('UTF-8')
count = len(encoded)
msb, lsb = divmod(count, 256) # split to two bytes
outfile.write(chr(msb))
outfile.write(chr(lsb))
outfile.write(encoded)
outfile
должен быть открыт в двоичном режиме (например, "wb
" ).
Это соответствует описанию интерфейса Java DataInput
. Однако я не пытался запустить это.