public byte[] toByteArray() {
try {
ByteArrayOutputStream objectStream = dataObject.toByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream(objectStream);
dout.writeUTF(recordid);
dout.close();
objectStream.close();
return objectStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
Проблема с кодом выше.Сначала я создаю objectStream (в другом классе).И затем я вручную добавляю записьид к ByteArrayOutputStream.Но есть ли способ сначала добавить recordId, а затем добавить к нему ByteArrayOutputStream?В основном у меня есть 2 ByteArrayoutputStreams, которые должны быть объединены (и остаются ByteArrayOutputStream).
edit: Моя новая версия должна работать, но это не так.Когда я распечатываю хэш-код dout, он остается одинаковым до и после сброса.Как будто он остается пустым?Это возможно?
public byte[] toByteArray() {
try {
ByteArrayOutputStream realOutputStream = new ByteArrayOutputStream();
DataOutputStream dout = new DataOutputStream(realOutputStream);
dout.writeUTF(dataObject.getClass().toString());
dout.writeUTF(recordid);
System.out.println("Recordid: " + recordid + "|" + dout.hashCode());
dout.flush();
System.out.println("Recordid: " + recordid + "|" + dout.hashCode());
ByteArrayOutputStream objectStream = dataObject.toByteArrayOutputStream();
dout.write(objectStream.toByteArray());
dout.close();
objectStream.close();
return objectStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}