📄 serialinput.java
字号:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2000-2004 * Sleepycat Software. All rights reserved. * * $Id: SerialInput.java,v 1.2 2004/06/04 18:24:49 mark Exp $ */package com.sleepycat.bind.serial;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.ObjectStreamClass;import com.sleepycat.db.DatabaseException;import com.sleepycat.util.RuntimeExceptionWrapper;/** * A specialized <code>ObjectInputStream</code> that gets class description * information from a <code>ClassCatalog</code>. It is used by * <code>SerialBinding</code>. * * <p>This class is used instead of an {@link ObjectInputStream}, which it * extends, to read an object stream written by the {@link SerialOutput} class. * For reading objects from a database normally one of the serial binding * classes is used. {@link SerialInput} is used when an {@link * ObjectInputStream} is needed along with compact storage. A {@link * ClassCatalog} must be supplied, however, to stored shared class * descriptions.</p> * * @author Mark Hayes */public class SerialInput extends ObjectInputStream { private ClassCatalog classCatalog; /** * Creates a serial input stream. * * @param in is the input stream from which compact serialized objects will * be read. * * @param classCatalog is the catalog containing the class descriptions * for the serialized objects. */ public SerialInput(InputStream in, ClassCatalog classCatalog) throws IOException { super(in); this.classCatalog = classCatalog; } // javadoc is inherited protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException { try { byte len = readByte(); byte[] id = new byte[len]; readFully(id); return classCatalog.getClassFormat(id); } catch (DatabaseException e) { /* * Do not throw IOException from here since ObjectOutputStream * will write the exception to the stream, which causes another * call here, etc. */ throw new RuntimeExceptionWrapper(e); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -