Java에서 바이너리 직렬화 및 역직렬화를 사용하려면 먼저 java.io 아래에 관련 패키지를 도입하거나 import java.io.*;를 직접 작성해야 합니다.
이하에서는 쓰기 작업의 편의를 위해 파일을 복사하고 예외를 발생시키는 방식을 사용하여 쓰기를 진행합니다.
다음과 같이 코드 코드를 복사합니다.
public void test6()에서 IOException이 발생합니다.
byte[] b = new byte[1024];//바이트 배열 정의, 버퍼
FileInputStream in = new FileInputStream("E://logo.gif");//입력 스트림 객체 생성
FileOutputStream out = new FileOutputStream("E://My.gif");//출력 스트림 객체 생성
DataInputStream 입력 = new DataInputStream(in);//입력 바이너리 스트림 생성
DataOutputStream dout = new DataOutputStream(out);//출력 바이너리 스트림 생성
int num = input.read(b);//바이너리 파일을 b로 읽습니다.
while (num != -1) {
dout.write(b, 0, num);//읽은 배열을 출력 스트림에 씁니다.
num = input.read(b); // 다시 읽습니다.
}
//모든 스트림 객체를 순서대로 닫습니다.
입력.닫기();
dout.close();
넣다();
종료.닫기();
System.out.println("복사 성공!");
}
코드는 참조용으로만 축약되었습니다!
C#은 바이너리 직렬화 및 역직렬화 작업을 사용합니다. 먼저 System.Runtime.Serialization.Formatters.Binary를 사용하여 직렬화 및 역직렬화 작업을 수행합니다. 또한 직렬화와 관련된 사용자 지정 클래스에 표시기 클래스 [Serialized]를 추가합니다.
예:
[직렬화 가능]
다음과 같이 코드 코드를 복사합니다.
공개 클래스 PlayManager
{
/// <요약>
///데이터를 직렬화하고 저장합니다.
/// </summary>
공개 무효 저장()
{
FileStream fs = null;
노력하다
{
fs = new FileStream("파일을 저장할 경로", FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, 저장할 객체);
}
잡기 (예외예외)
{
MessageBox.Show(ex.메시지);
}
마지막으로
{
fs.닫기();
}
/// <요약>
/// 직렬화 정보 로드
/// </summary>
공공 무효 로드()
{
FileStream fs = null;
노력하다
{
fs = new FileStream("파일 경로", FileMode.OpenOrCreate);
BinaryFormatter bf = new BinaryFormatter();
객체 수신 = (객체 유형)bf.Deserialize(fs) //강제 유형 변환
}
잡기 (예외예외)
{
MessageBox.Show(ex.메시지);
}
마지막으로
{
fs.닫기();
}
이것은 C#에서 직렬화된 파일을 사용하는 것입니다. 실제로 try-catch-finally를 추가하지 않으면 코드 4문장만 있으면 됩니다.
지나간 친구들, 이해하셨나요? 이해가 안가시면 질문하셔도 됩니다!