Java SE Chapitre 8 Flux et flux d'objets-fichiers

Java SE Chapitre 8 Flux et flux d'objets-fichiers

Premièrement, la classe ObjectOutputStream réalise la sérialisation de l'objet, c'est-à-dire écrit l'objet dans le flux d'octets. Cette classe est une sous-classe de OutputStream. Cette classe implémente également l'interface ObjectOutput (prend en charge la sérialisation d'objets).

               该类的一个构造方法如下:

ObjectOutputStream (OutputStream OutStream) lance IOException
Parmi eux, le paramètre OutStream est le flux de sortie qui sera écrit dans la sérialisation d'objet.

                 该类常用的方法及功能:

final void writeObject (Object object) écrire un obj dans le flux appelant
void writeInt (int i) écrire un int dans le flux appelant
void writeBytes (String str) écrire les octets représentant str dans le flux appelant
void writeChar (int c) write a char au flux appelant

Deuxièmement, la classe ObjectInputStream implémente la désérialisation de l'objet, c'est-à-dire lire l'objet à partir d'un flux d'octets. Cette classe est une sous-classe d'InputStream. Cette classe implémente également l'interface ObjectInput (prend en charge la sérialisation d'objets). Une méthode de construction de cette classe est la suivante:
ObjectInputStream (InputStream InputStream) lève IOException
Parmi eux, le paramètre InputStream est le flux d'entrée qui sera écrit dans la sérialisation d'objet.

                该类常用的方法及功能:

Objet final readObject lit un objet dans le flux
int readInt () lit une valeur int 32 bits
dans le flux String readUTF () lit une chaîne au format UTF-8 dans le flux
Char readChar () lit une valeur char 16 bits

                这是一个Person对象

public class Person implements Serializable{
    
    
	private String idCard;
	private String name;
	private int age;
	public Person(String idCard,String name,int age){
    
    
		this.idCard=idCard;
		this.name=name;
		this.age=age;
	}
//get和set方法省略
}

Remarque: Cet objet Person implémente l'interface Serializable, cette interface ne définit aucune méthode, elle indique simplement qu'une classe peut être sérialisée. Si une classe est sérialisable, toutes ses sous-classes sont également sérialisables.
L'interface sérialisable est définie comme suit:

public interface Serializable{
    
    
}

Exemple: utilisez ObjectOutputStream pour écrire l'objet de type Person mentionné ci-dessus dans le fichier (d: \ Person.tmp).
1) Créer un objet ObjectOutputStream
2) Créer un objet Person
3) Ecrire l'objet dans le fichier
4) Enfin fermer le flux

package ch08;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;

public class ObjectOutputStreamDemo {
    
    

	public static void main(String[] args) {
    
    
			ObjectOutputStream obs=null;
		try{
    
    
			obs=new ObjectOutputStream(new FileOutputStream("d:\\Person.tmp"));1)
			Person person=new Person("121001","张三",25);2)
			obs.writeObject(person);3)
			obs.flush();
		}catch(Exception ex){
    
    
			ex.printStackTrace();
		}finally{
    
    
			try{
    
    
				if(obs!=null){
    
    
					obs.close();4}
			}catch(Exception ex){
    
    
				ex.printStackTrace();
			}
		}
	}
}

Exemple: utilisez ObjectInputStream pour lire un objet de type Person à partir du fichier (d: \ Person.tmp).
1) Créer un objet ObjectInputStream
2) Recevoir l'objet
3) Imprimer
4) Fermer le flux

package ch08;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class ObjectInputStreamDemo {
    
    
	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		ObjectInputStream ois=null;
		try{
    
    
			ois = new ObjectInputStream(new FileInputStream("d:\\Person.tmp"));1)
			Object obj=ois.readObject();2if(obj!=null){
    
    
				Person person=(Person)obj;
				System.out.println("编号:"+person.getIdCard()3+"姓名:"+person.getName()
				+"年龄:"+person.getAge());
			}
		}catch(Exception ex){
    
    
			ex.printStackTrace();
		}finally{
    
    
			try{
    
    
				if(ois!=null){
    
    
					ois.close();4}
			}catch(Exception ex){
    
    
				ex.printStackTrace();
			}
		}
	}
}

Image d'effet:
Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_45618376/article/details/111340954
conseillé
Classement