私は、ObjectOutputStream/ObjectInputStreamがヘッダーを使用していることを認識していますが、これは本当に適切な使用例ではありません。しかし、とにかく私はが、DataInputとDataOutputのインタフェースを使ってデータをラップする必要があります。ObjectOutputStreamとObjectInputStreamを使用してバイト配列に正しく(シリアライズする)方法を教えてください。
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
byte[] array = serialize("test");
String deserialized = deserialize(array);
System.out.println(deserialized);
}
private static byte[] serialize(String test) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
objectOutputStream.writeUTF(test);
byteArrayOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return byteArrayOutputStream.toByteArray();
}
private static String deserialize(byte[] array) {
String temp = null;
try {
ObjectInputStream objectInputStream = new ObjectInputStream(new ByteArrayInputStream(array));
temp = objectInputStream.readUTF();
objectInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
return temp;
}
}
私は実際にそれを得る方法を得ていません。私の言うとおり、問題は現在そのヘッダーですか?
何が問題なのですか?あなたは例外または間違った結果を持っていますか?また、あなたの投稿に[最小限の作業例](https://stackoverflow.com/help/mcve)を提供することもできます。 – talex
@talex EOFExceptionをスローします。どうぞご覧ください[here](http://ideone.com/iIC9TI) – Tobseb
外部リソースが信頼できないため、あなたの質問にあなたのコードを投稿してください。誰かが将来同じ問題を抱えているかもしれないが、壊れたリンク。今回私はあなたのためにそれをしましたが、将来自分でやってください。 – talex