Mengenai bersiri dan penyahserikatan di Jawa
PHP中文网
PHP中文网 2017-05-27 17:41:47
0
1
964

1 Kod berikut mensiri fail 2.log dan simpan ke 2.txt

    FileInputStream fin = new FileInputStream("D:\2.log");

    FileOutputStream out1 = new FileOutputStream(new File("D:\2.txt"));

    // ObjectOutputStream oop1 = new ObjectOutputStream(out1);

    byte[] datas = new byte[1024];

    int j = 0;

    while ((j = fin.read(datas)) > 0) {

        out1.write(datas);

        fin.read(datas);

    }

    fin.close();
    out1.close();

Deserialisasi:
Gunakan ObjectInputStream()
FileInputStream fis = new FileInputStream("D:/2.txt");
ObjectInputStream oin = new ObjectInputStream(fis);
oin.readObjectr("utama);
" java.io.StreamCorruptedException: pengepala strim tidak sah: 3139322E
Bagaimana untuk menanganinya?
Jika fail besar, bagaimana untuk menambah cache semasa membaca? Saya harap Daniel dapat menyedarkan saya, xiexie

PHP中文网
PHP中文网

认证0级讲师

membalas semua(1)
漂亮男人

Masalah anda adalah kerana kandungan yang dibaca oleh ObjectInputStream mesti dihasilkan dengan menulis oleh ObjectOutputStream. Kandungan fail mesti mematuhi keperluan spesifikasi siri Java. Tatasusunan bait yang anda cipta sendiri tidak boleh digunakan.


protobuf ialah kaedah yang fleksibel, cekap dan automatik untuk mensiri data berstruktur, sama seperti XML, tetapi ia lebih kecil, lebih pantas dan lebih ringkas. Anda boleh menentukan struktur data anda sendiri dan kemudian menggunakan kod yang dijana oleh penjana kod untuk membaca dan menulis struktur data ini. Anda juga boleh mengemas kini struktur data tanpa menggunakan semula program.

Sama ada saiz atau kecekapan bersiri, ia pada asasnya adalah beberapa kali lebih baik daripada bersiri yang datang dengan JAVA Semakin besar data, semakin jelas kelebihannya menyusahkan untuk beroperasi

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan