protectedonescomp.java

来自「real-time design patterns in Real-time j」· Java 代码 · 共 58 行

JAVA
58
字号
package designPatterns;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutput;import java.io.ObjectOutputStream;import java.io.Serializable;import java.io.StreamCorruptedException;public class ProtectedOnesComp {	private byte[] bytearr;	private byte[] onescompl;	public void storeObj(Serializable object) throws IOException {		// Serialize to a byte array		ObjectOutput out;		ByteArrayOutputStream bos = new ByteArrayOutputStream() ;		out = new ObjectOutputStream(bos) ;		out.writeObject(object);		out.close();		bytearr = bos.toByteArray();		onesComp();	}	public Serializable getObj() throws StreamCorruptedException, IOException, ClassNotFoundException {		// Deserialize from a byte array		ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytearr));        Serializable obj = (Serializable) in.readObject();        in.close();        return obj;	}		public boolean check() {		boolean result = true;		for (int i = 0; i < bytearr.length; i++) {			if (onescompl[i] != (byte)~bytearr[i]) {				result = false;				break;			}		}		return result;	}	private void onesComp() {		onescompl = new byte[bytearr.length];		for (int i = 0; i < bytearr.length; i++) {			onescompl[i] = (byte)~bytearr[i];		}	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?