À propos de la sérialisation et de la désérialisation en Java
PHP中文网
PHP中文网 2017-05-27 17:41:47
0
1
960

1. Le code suivant sérialise le fichier 2.log et l'enregistre dans 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();

Désérialisation :
Utilisez ObjectInputStream()
FileInputStream fis = new FileInputStream("D:/2.txt");
ObjectInputStream oin = new ObjectInputStream(fis);
oin.readObject();
Erreur : Exception dans le fil de discussion "main " java.io.StreamCorruptedException : en-tête de flux non valide : 3139322E
Comment y remédier ?
Si le fichier est volumineux, comment ajouter du cache lors de la lecture ? J'espère que Daniel pourra m'éclairer, xiexie

PHP中文网
PHP中文网

认证0级讲师

répondre à tous(1)
漂亮男人

Votre problème est que le contenu lu par ObjectInputStream doit être généré en écrivant par ObjectOutputStream. Le contenu du fichier doit être conforme aux exigences de spécification de la sérialisation Java. Le tableau d'octets que vous créez vous-même ne peut pas être utilisé.


protobuf est une méthode flexible, efficace et automatique pour sérialiser des données structurées, tout comme XML, mais elle est plus petite, plus rapide et plus simple. Vous pouvez définir votre propre structure de données puis utiliser le code généré par le générateur de code pour lire et écrire cette structure de données. Vous pouvez même mettre à jour les structures de données sans redéployer le programme.

Qu'il s'agisse de taille ou d'efficacité de sérialisation et de désérialisation, c'est fondamentalement à l'avant-garde que la sérialisation fournie avec JAVA. Plus les données sont volumineuses, plus l'avantage est évident. difficile à utiliser

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal