Я пытаюсь сериализовать строковый объект, написав собственный код для получения байтового массива этого объекта вместо использования string.getBytes () , но я получаю дополнительные нечетные символы в выводе следующим образом
Вывод
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.util.Arrays;
public class Demo {
private static final String OUTPUT_FILE = "D:\\testFile.txt";
public static void main(String[] args) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
byte[] bytes;
String content = "Hello Java Code Geeks";
out = new ObjectOutputStream(bos);
out.writeObject(content);
out.flush();
bytes = bos.toByteArray();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
outputStream.write(bytes);
System.out.println(Arrays.toString(outputStream.toByteArray()));
System.out.println(outputStream.toString());
// Write the internal buffer to an output stream
outputStream.writeTo(new FileOutputStream(OUTPUT_FILE));
}
}
PS: я должен использовать java.io.OutputStream класс, но если есть какой-либо другой способ получить ByteArray от объекта, отличного от моего или string.getBytes () , не стесняйтесь предлагать.
Резонанс не использования string.getBytes () - это общий способ получения байтового массива из любых типов объектов, включая определяемые пользователем объекты.