JAVA NIO 의 2

2104 단어 자바nio
인용 하 다.
이전 절 에 이 어 JAVA NIO 를 이용 하여 간단 한 데이터 전송 을 실현 하고 이 절 은 사용자 정의 대상 전송 을 실현 하 며 수신 자가 완전한 대상 을 구축 하기 위해 사용자 정의 대상 은 Serializable 인 터 페 이 스 를 실현 하여 대상 의 직렬 화 와 반 순차 화 를 완성 하도록 한다.
다음 절 에 우 리 는 스 레 드 풀 로 읽 기와 쓰 기 를 관리 할 것 입 니 다. 기대...

import java.io.Serializable;

/**
 *     ,  ObjectOutputStream、ObjectInputStream
 *   ,          
 * @author oy
 *
 */
public class User implements Serializable{
	
	private static final long serialVersionUID = 588789688009378496L;

	private int age;
	
	private String name;
	
	/* Ignore this attribution */
	private transient String school;

	public User(String name, int age, String school){
		this.name = name;
		this.age = age;
		this.school = school;
	}

	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSchool() {
		return school;
	}

	public void setSchool(String school) {
		this.school = school;
	}

	@Override
	public String toString() {
		return "User [age=" + age + ", name=" + name + ", school=" + school
				+ "]";
	}
}


 /*        */
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(new User("Test", 30, "xx  "));
channel.write(ByteBuffer.wrap(baos.toByteArray()));

/*        */
ByteBuffer buffer = ByteBuffer.allocate(1024);
channel.read(buffer);
byte[] data = buffer.array();
ByteArrayInputStream bais = new ByteArrayInputStream(data);
ObjectInputStream ois = new ObjectInputStream(bais);
User user = (User)ois.readObject();

좋은 웹페이지 즐겨찾기