- 所有类 (Java 2 Platform SE 5.0)
- 已过时的 API
- 此 API 文档的组织方式
- 概述 (Java 2 Platform SE 5.0)
- Java 2 Platform 软件包
- 所有软件包的分层结构
- java.awt 接口 ActiveEvent
- java.awt 接口 Adjustable
- java.awt 类 AlphaComposite
- java.awt 类 AWTError
- java.awt 类 AWTEvent
- java.awt 类 AWTEventMulticaster
- java.awt 类 AWTException
- java.awt 类 AWTKeyStroke
- java.awt 类 AWTPermission
- java.awt 类 BasicStroke
- java.awt 类 BorderLayout
- java.awt 类 BufferCapabilities.FlipContents
- java.awt 类 BufferCapabilities
- java.awt 类 Button
- java.awt 类 Canvas
- java.awt 类 CardLayout
- java.awt 类 Checkbox
- java.awt 类 CheckboxGroup
- java.awt 类 CheckboxMenuItem
- java.awt 类 Choice
- java.awt 类 Color
- java.awt 类 Component
- java.awt 类 ComponentOrientation
- java.awt 接口 Composite
- java.awt 接口 CompositeContext
- java.awt 类 Container
- java.awt 类 ContainerOrderFocusTraversalPolicy
- java.awt 类 Cursor
- java.awt 类 DefaultFocusTraversalPolicy
- java.awt 类 DefaultKeyboardFocusManager
- java.awt 类 Dialog
- java.awt 类 Dimension
- java.awt 类 DisplayMode
- java.awt 类 Event
- java.awt 类 EventQueue
- java.awt 类 FileDialog
- java.awt 类 FlowLayout
- java.awt 类 FocusTraversalPolicy
- java.awt 类 Font
- java.awt 类 FontFormatException
- java.awt 类 FontMetrics
- java.awt 类 Frame
- java.awt 类 GradientPaint
- java.awt 类 Graphics
- java.awt 类 Graphics2D
- java.awt 类 GraphicsConfigTemplate
- java.awt 类 GraphicsConfiguration
- java.awt 类 GraphicsDevice
- java.awt 类 GraphicsEnvironment
- java.awt 类 GridBagConstraints
- java.awt 类 GridBagLayout
- java.awt 类 GridLayout
- java.awt 类 HeadlessException
- java.awt 类 IllegalComponentStateException
- java.awt 类 Image
- java.awt 类 ImageCapabilities
- java.awt 类 Insets
- java.awt 接口 ItemSelectable
- java.awt 类 JobAttributes.DefaultSelectionType
- java.awt 类 JobAttributes.DestinationType
- java.awt 类 JobAttributes.DialogType
- java.awt 类 JobAttributes
- java.awt 类 JobAttributes.MultipleDocumentHandlingType
- java.awt 类 JobAttributes.SidesType
- java.awt 类 KeyboardFocusManager
- java.awt 接口 KeyEventDispatcher
- java.awt 接口 KeyEventPostProcessor
- java.awt 类 Label
- java.awt 接口 LayoutManager
- java.awt 接口 LayoutManager2
- java.awt 类 List
- java.awt 类 MediaTracker
- java.awt 类 Menu
- java.awt 类 MenuBar
- java.awt 类 MenuComponent
- java.awt 接口 MenuContainer
- java.awt 类 MenuItem
- java.awt 类 MenuShortcut
- java.awt 类 MouseInfo
- java.awt (Java 2 Platform SE 5.0)
- 软件包 java.awt
- java.awt 类 PageAttributes.ColorType
- java.awt 类 PageAttributes
- java.awt 类 PageAttributes.MediaType
- java.awt 类 PageAttributes.OrientationRequestedType
- java.awt 类 PageAttributes.OriginType
- java.awt 类 PageAttributes.PrintQualityType
- java.awt 接口 Paint
- java.awt 接口 PaintContext
- java.awt 类 Panel
- java.awt 类 Point
- java.awt 类 PointerInfo
- java.awt 类 Polygon
- java.awt 类 PopupMenu
- java.awt 接口 PrintGraphics
- java.awt 类 PrintJob
- java.awt 类 Rectangle
- java.awt 类 RenderingHints
- java.awt 类 RenderingHints.Key
- java.awt 类 Robot
- java.awt 类 Scrollbar
- java.awt 类 ScrollPane
- java.awt 类 ScrollPaneAdjustable
- java.awt 接口 Shape
- java.awt 接口 Stroke
- java.awt 类 SystemColor
- java.awt 类 TextArea
- java.awt 类 TextComponent
- java.awt 类 TextField
- java.awt 类 TexturePaint
- java.awt 类 Toolkit
- java.awt 接口 Transparency
- java.awt 类 Window
- java.awt.color 类 CMMException
- java.awt.color 类 ColorSpace
- java.awt.color 类 ICC_ColorSpace
- java.awt.color 类 ICC_Profile
- java.awt.color 类 ICC_ProfileGray
- java.awt.color 类 ICC_ProfileRGB
- java.awt.color (Java 2 Platform SE 5.0)
- 软件包 java.awt.color
- java.awt.color 类 ProfileDataException
- java.awt.datatransfer 类 Clipboard
- java.awt.datatransfer 接口 ClipboardOwner
- java.awt.datatransfer 类 DataFlavor
- java.awt.datatransfer 类 FlavorEvent
- java.awt.datatransfer 接口 FlavorListener
- java.awt.datatransfer 接口 FlavorMap
- java.awt.datatransfer 接口 FlavorTable
- java.awt.datatransfer 类 MimeTypeParseException
- java.awt.datatransfer (Java 2 Platform SE 5.0)
- 软件包 java.awt.datatransfer
- java.awt.datatransfer 类 StringSelection
- java.awt.datatransfer 类 SystemFlavorMap
- java.awt.datatransfer 接口 Transferable
- java.awt.datatransfer 类 UnsupportedFlavorException
- java.awt.dnd 接口 Autoscroll
- java.awt.dnd 类 DnDConstants
- java.awt.dnd 类 DragGestureEvent
- java.awt.dnd 接口 DragGestureListener
- java.awt.dnd 类 DragGestureRecognizer
- java.awt.dnd 类 DragSource
- java.awt.dnd 类 DragSourceAdapter
- java.awt.dnd 类 DragSourceContext
- java.awt.dnd 类 DragSourceDragEvent
- java.awt.dnd 类 DragSourceDropEvent
- java.awt.dnd 类 DragSourceEvent
- java.awt.dnd 接口 DragSourceListener
- java.awt.dnd 接口 DragSourceMotionListener
- java.awt.dnd 类 DropTarget.DropTargetAutoScroller
- java.awt.dnd 类 DropTarget
- java.awt.dnd 类 DropTargetAdapter
- java.awt.dnd 类 DropTargetContext
- java.awt.dnd 类 DropTargetDragEvent
- java.awt.dnd 类 DropTargetDropEvent
- java.awt.dnd 类 DropTargetEvent
- java.awt.dnd 接口 DropTargetListener
- java.awt.dnd 类 InvalidDnDOperationException
- java.awt.dnd 类 MouseDragGestureRecognizer
- java.awt.dnd (Java 2 Platform SE 5.0)
- 软件包 java.awt.dnd
- java.awt.event 类 ActionEvent
- java.awt.event 接口 ActionListener
- java.awt.event 类 AdjustmentEvent
- java.awt.event 接口 AdjustmentListener
- java.awt.event 接口 AWTEventListener
- java.awt.event 类 AWTEventListenerProxy
- java.awt.event 类 ComponentAdapter
- java.awt.event 类 ComponentEvent
- java.awt.event 接口 ComponentListener
- java.awt.event 类 ContainerAdapter
- java.awt.event 类 ContainerEvent
- java.awt.event 接口 ContainerListener
- java.awt.event 类 FocusAdapter
- java.awt.event 类 FocusEvent
- java.awt.event 接口 FocusListener
- java.awt.event 类 HierarchyBoundsAdapter
- java.awt.event 接口 HierarchyBoundsListener
- java.awt.event 类 HierarchyEvent
- java.awt.event 接口 HierarchyListener
- java.awt.event 类 InputEvent
- java.awt.event 类 InputMethodEvent
- java.awt.event 接口 InputMethodListener
- java.awt.event 类 InvocationEvent
- java.awt.event 类 ItemEvent
- java.awt.event 接口 ItemListener
- java.awt.event 类 KeyAdapter
- java.awt.event 类 KeyEvent
- java.awt.event 接口 KeyListener
- java.awt.event 类 MouseAdapter
- java.awt.event 类 MouseEvent
- java.awt.event 接口 MouseListener
- java.awt.event 类 MouseMotionAdapter
- java.awt.event 接口 MouseMotionListener
- java.awt.event 类 MouseWheelEvent
- java.awt.event 接口 MouseWheelListener
- java.awt.event (Java 2 Platform SE 5.0)
- 软件包 java.awt.event
- java.awt.event 类 PaintEvent
- java.awt.event 类 TextEvent
- java.awt.event 接口 TextListener
- java.awt.event 类 WindowAdapter
- java.awt.event 类 WindowEvent
- java.awt.event 接口 WindowFocusListener
- java.awt.event 接口 WindowListener
- java.awt.event 接口 WindowStateListener
- java.awt.font 类 FontRenderContext
- java.awt.font 类 GlyphJustificationInfo
- java.awt.font 类 GlyphMetrics
- java.awt.font 类 GlyphVector
- java.awt.font 类 GraphicAttribute
- java.awt.font 类 ImageGraphicAttribute
- java.awt.font 类 LineBreakMeasurer
- java.awt.font 类 LineMetrics
- java.awt.font 接口 MultipleMaster
- java.awt.font 类 NumericShaper
- java.awt.font 接口 OpenType
- java.awt.font (Java 2 Platform SE 5.0)
- 软件包 java.awt.font
- java.awt.font 类 ShapeGraphicAttribute
- java.awt.font 类 TextAttribute
- java.awt.font 类 TextHitInfo
- java.awt.font 类 TextLayout.CaretPolicy
- java.awt.font 类 TextLayout
- java.awt.font 类 TextMeasurer
- java.awt.font 类 TransformAttribute
- java.awt.geom 类 AffineTransform
- java.awt.geom 类 Arc2D.Double
- java.awt.geom 类 Arc2D.Float
- java.awt.geom 类 Arc2D
- java.awt.geom 类 Area
- java.awt.geom 类 CubicCurve2D.Double
- java.awt.geom 类 CubicCurve2D.Float
- java.awt.geom 类 CubicCurve2D
- java.awt.geom 类 Dimension2D
- java.awt.geom 类 Ellipse2D.Double
- java.awt.geom 类 Ellipse2D.Float
- java.awt.geom 类 Ellipse2D
- java.awt.geom 类 FlatteningPathIterator
- java.awt.geom 类 GeneralPath
- java.awt.geom 类 IllegalPathStateException
- java.awt.geom 类 Line2D.Double
- java.awt.geom 类 Line2D.Float
- java.awt.geom 类 Line2D
- java.awt.geom 类 NoninvertibleTransformException
- java.awt.geom (Java 2 Platform SE 5.0)
- 软件包 java.awt.geom
- java.awt.geom 接口 PathIterator
- java.awt.geom 类 Point2D.Double
- java.awt.geom 类 Point2D.Float
- java.awt.geom 类 Point2D
- java.awt.geom 类 QuadCurve2D.Double
- java.awt.geom 类 QuadCurve2D.Float
- java.awt.geom 类 QuadCurve2D
- java.awt.geom 类 Rectangle2D.Double
- java.awt.geom 类 Rectangle2D.Float
- java.awt.geom 类 Rectangle2D
- java.awt.geom 类 RectangularShape
- java.awt.geom 类 RoundRectangle2D.Double
- java.awt.geom 类 RoundRectangle2D.Float
- java.awt.geom 类 RoundRectangle2D
- java.awt.im 类 InputContext
- java.awt.im 类 InputMethodHighlight
- java.awt.im 接口 InputMethodRequests
- java.awt.im 类 InputSubset
- java.awt.im (Java 2 Platform SE 5.0)
- 软件包 java.awt.im
- java.awt.im.spi 接口 InputMethod
- java.awt.im.spi 接口 InputMethodContext
- java.awt.im.spi 接口 InputMethodDescriptor
- java.awt.im.spi (Java 2 Platform SE 5.0)
- 软件包 java.awt.im.spi
- java.awt.image 类 AffineTransformOp
- java.awt.image 类 AreaAveragingScaleFilter
- java.awt.image 类 BandCombineOp
- java.awt.image 类 BandedSampleModel
- java.awt.image 类 BufferedImage
- java.awt.image 类 BufferedImageFilter
- java.awt.image 接口 BufferedImageOp
- java.awt.image 类 BufferStrategy
- java.awt.image 类 ByteLookupTable
- java.awt.image 类 ColorConvertOp
- java.awt.image 类 ColorModel
- java.awt.image 类 ComponentColorModel
- java.awt.image 类 ComponentSampleModel
- java.awt.image 类 ConvolveOp
- java.awt.image 类 CropImageFilter
- java.awt.image 类 DataBuffer
- java.awt.image 类 DataBufferByte
- java.awt.image 类 DataBufferDouble
- java.awt.image 类 DataBufferFloat
- java.awt.image 类 DataBufferInt
- java.awt.image 类 DataBufferShort
- java.awt.image 类 DataBufferUShort
- java.awt.image 类 DirectColorModel
- java.awt.image 类 FilteredImageSource
- java.awt.image 接口 ImageConsumer
- java.awt.image 类 ImageFilter
- java.awt.image 接口 ImageObserver
- java.awt.image 接口 ImageProducer
- java.awt.image 类 ImagingOpException
- java.awt.image 类 IndexColorModel
- java.awt.image 类 Kernel
- java.awt.image 类 LookupOp
- java.awt.image 类 LookupTable
- java.awt.image 类 MemoryImageSource
- java.awt.image 类 MultiPixelPackedSampleModel
- java.awt.image (Java 2 Platform SE 5.0)
- 软件包 java.awt.image
- java.awt.image 类 PackedColorModel
- java.awt.image 类 PixelGrabber
- java.awt.image 类 PixelInterleavedSampleModel
- java.awt.image 类 Raster
- java.awt.image 类 RasterFormatException
- java.awt.image 接口 RasterOp
- java.awt.image 接口 RenderedImage
- java.awt.image 类 ReplicateScaleFilter
- java.awt.image 类 RescaleOp
- java.awt.image 类 RGBImageFilter
- java.awt.image 类 SampleModel
- java.awt.image 类 ShortLookupTable
- java.awt.image 类 SinglePixelPackedSampleModel
- java.awt.image 接口 TileObserver
- java.awt.image 类 VolatileImage
- java.awt.image 类 WritableRaster
- java.awt.image 接口 WritableRenderedImage
- java.awt.image.renderable 接口 ContextualRenderedImageFactory
- java.awt.image.renderable (Java 2 Platform SE 5.0)
- 软件包 java.awt.image.renderable
- java.awt.image.renderable 类 ParameterBlock
- java.awt.image.renderable 接口 RenderableImage
- java.awt.image.renderable 类 RenderableImageOp
- java.awt.image.renderable 类 RenderableImageProducer
- java.awt.image.renderable 类 RenderContext
- java.awt.image.renderable 接口 RenderedImageFactory
- java.awt.print 类 Book
- java.awt.print (Java 2 Platform SE 5.0)
- 软件包 java.awt.print
- java.awt.print 接口 Pageable
- java.awt.print 类 PageFormat
- java.awt.print 类 Paper
- java.awt.print 接口 Printable
- java.awt.print 类 PrinterAbortException
- java.awt.print 类 PrinterException
- java.awt.print 接口 PrinterGraphics
- java.awt.print 类 PrinterIOException
- java.awt.print 类 PrinterJob
- java.io 类 BufferedInputStream
- java.io 类 BufferedOutputStream
- java.io 类 BufferedReader
- java.io 类 BufferedWriter
- java.io 类 ByteArrayInputStream
- java.io 类 ByteArrayOutputStream
- java.io 类 CharArrayReader
- java.io 类 CharArrayWriter
- java.io 类 CharConversionException
- java.io 接口 Closeable
- java.io 接口 DataInput
- java.io 类 DataInputStream
- java.io 接口 DataOutput
- java.io 类 DataOutputStream
- java.io 类 EOFException
- java.io 接口 Externalizable
- java.io 类 File
- java.io 类 FileDescriptor
- java.io 接口 FileFilter
- java.io 类 FileInputStream
- java.io 接口 FilenameFilter
- java.io 类 FileNotFoundException
- java.io 类 FileOutputStream
- java.io 类 FilePermission
- java.io 类 FileReader
- java.io 类 FileWriter
- java.io 类 FilterInputStream
- java.io 类 FilterOutputStream
- java.io 类 FilterReader
- java.io 类 FilterWriter
- java.io 接口 Flushable
- java.io 类 InputStream
- java.io 类 InputStreamReader
- java.io 类 InterruptedIOException
- java.io 类 InvalidClassException
- java.io 类 InvalidObjectException
- java.io 类 IOException
- java.io 类 LineNumberInputStream
- java.io 类 LineNumberReader
- java.io 类 NotActiveException
- java.io 类 NotSerializableException
- java.io 接口 ObjectInput
- java.io 类 ObjectInputStream.GetField
- java.io 类 ObjectInputStream
- java.io 接口 ObjectInputValidation
- java.io 接口 ObjectOutput
- java.io 类 ObjectOutputStream
- java.io 类 ObjectOutputStream.PutField
- java.io 类 ObjectStreamClass
- java.io 接口 ObjectStreamConstants
- java.io 类 ObjectStreamException
- java.io 类 ObjectStreamField
- java.io 类 OptionalDataException
- java.io 类 OutputStream
- java.io 类 OutputStreamWriter
- java.io (Java 2 Platform SE 5.0)
- 软件包 java.io
- java.io 类 PipedInputStream
- java.io 类 PipedOutputStream
- java.io 类 PipedReader
- java.io 类 PipedWriter
- java.io 类 PrintStream
- java.io 类 PrintWriter
- java.io 类 PushbackInputStream
- java.io 类 PushbackReader
- java.io 类 RandomAccessFile
- java.io 类 Reader
- java.io 类 SequenceInputStream
- java.io 接口 Serializable
- java.io 类 SerializablePermission
- java.io 类 StreamCorruptedException
- java.io 类 StreamTokenizer
- java.io 类 StringBufferInputStream
- java.io 类 StringReader
- java.io 类 StringWriter
- java.io 类 SyncFailedException
- java.io 类 UnsupportedEncodingException
- java.io 类 UTFDataFormatException
- java.io 类 WriteAbortedException
- java.io 类 Writer
- java.lang 类 AbstractMethodError
- java.lang 接口 Appendable
- java.lang 类 ArithmeticException
- java.lang 类 ArrayIndexOutOfBoundsException
- java.lang 类 ArrayStoreException
- java.lang 类 AssertionError
- java.lang 类 Boolean
- java.lang 类 Byte
- java.lang 类 Character
- java.lang 类 Character.Subset
- java.lang 类 Character.UnicodeBlock
- java.lang 接口 CharSequence
- java.lang 类 Class<T>
- java.lang 类 ClassCastException
- java.lang 类 ClassCircularityError
- java.lang 类 ClassFormatError
- java.lang 类 ClassLoader
- java.lang 类 ClassNotFoundException
- java.lang 接口 Cloneable
- java.lang 类 CloneNotSupportedException
- java.lang 接口 Comparable<T>
- java.lang 类 Compiler
- java.lang 注释类型 Deprecated
- java.lang 类 Double
- java.lang 类 Enum<E extends Enum<E>>
- java.lang 类 EnumConstantNotPresentException
- java.lang 类 Error
- java.lang 类 Exception
- java.lang 类 ExceptionInInitializerError
- java.lang 类 Float
- java.lang 类 IllegalAccessError
- java.lang 类 IllegalAccessException
- java.lang 类 IllegalArgumentException
- java.lang 类 IllegalMonitorStateException
- java.lang 类 IllegalStateException
- java.lang 类 IllegalThreadStateException
- java.lang 类 IncompatibleClassChangeError
- java.lang 类 IndexOutOfBoundsException
- java.lang 类 InheritableThreadLocal<T>
- java.lang 类 InstantiationError
- java.lang 类 InstantiationException
- java.lang 类 Integer
- java.lang 类 InternalError
- java.lang 类 InterruptedException
- java.lang 接口 Iterable<T>
- java.lang 类 LinkageError
- java.lang 类 Long
- java.lang 类 Math
- java.lang 类 NegativeArraySizeException
- java.lang 类 NoClassDefFoundError
- java.lang 类 NoSuchFieldError
- java.lang 类 NoSuchFieldException
- java.lang 类 NoSuchMethodError
- java.lang 类 NoSuchMethodException
- java.lang 类 NullPointerException
- java.lang 类 Number
- java.lang 类 NumberFormatException
- java.lang 类 Object
- java.lang 类 OutOfMemoryError
- java.lang 注释类型 Override
- java.lang (Java 2 Platform SE 5.0)
- 软件包 java.lang
- java.lang 类 Package
- java.lang 类 Process
- java.lang 类 ProcessBuilder
- java.lang 接口 Readable
- java.lang 接口 Runnable
- java.lang 类 Runtime
- java.lang 类 RuntimeException
- java.lang 类 RuntimePermission
- java.lang 类 SecurityException
- java.lang 类 SecurityManager
- java.lang 类 Short
- java.lang 类 StackOverflowError
- java.lang 类 StackTraceElement
- java.lang 类 StrictMath
- java.lang 类 String
- java.lang 类 StringBuffer
- java.lang 类 StringBuilder
- java.lang 类 StringIndexOutOfBoundsException
- java.lang 注释类型 SuppressWarnings
- java.lang 类 System
- java.lang 类 Thread
- java.lang 枚举 Thread.State
- java.lang 接口 Thread.UncaughtExceptionHandler
- java.lang 类 ThreadDeath
- java.lang 类 ThreadGroup
- java.lang 类 ThreadLocal<T>
- java.lang 类 Throwable
- java.lang 类 TypeNotPresentException
- java.lang 类 UnknownError
- java.lang 类 UnsatisfiedLinkError
- java.lang 类 UnsupportedClassVersionError
- java.lang 类 UnsupportedOperationException
- java.lang 类 VerifyError
- java.lang 类 VirtualMachineError
- java.lang 类 Void
- java.lang.annotation 接口 Annotation
- java.lang.annotation 类 AnnotationFormatError
- java.lang.annotation 类 AnnotationTypeMismatchException
- java.lang.annotation 注释类型 Documented
- java.lang.annotation 枚举 ElementType
- java.lang.annotation 类 IncompleteAnnotationException
- java.lang.annotation 注释类型 Inherited
- java.lang.annotation (Java 2 Platform SE 5.0)
- 软件包 java.lang.annotation
- java.lang.annotation 注释类型 Retention
- java.lang.annotation 枚举 RetentionPolicy
- java.lang.annotation 注释类型 Target
- java.lang.instrument 类 ClassDefinition
- java.lang.instrument 接口 ClassFileTransformer
- java.lang.instrument 类 IllegalClassFormatException
- java.lang.instrument 接口 Instrumentation
- java.lang.instrument (Java 2 Platform SE 5.0)
- 软件包 java.lang.instrument
- java.lang.instrument 类 UnmodifiableClassException
- java.lang.management 接口 ClassLoadingMXBean
- java.lang.management 接口 CompilationMXBean
- java.lang.management 接口 GarbageCollectorMXBean
- java.lang.management 类 ManagementFactory
- java.lang.management 类 ManagementPermission
- java.lang.management 接口 MemoryManagerMXBean
- java.lang.management 接口 MemoryMXBean
- java.lang.management 类 MemoryNotificationInfo
- java.lang.management 接口 MemoryPoolMXBean
- java.lang.management 枚举 MemoryType
- java.lang.management 类 MemoryUsage
- java.lang.management 接口 OperatingSystemMXBean
- java.lang.management (Java 2 Platform SE 5.0)
- 软件包 java.lang.management
- java.lang.management 接口 RuntimeMXBean
- java.lang.management 类 ThreadInfo
- java.lang.management 接口 ThreadMXBean
- java.lang.ref (Java 2 Platform SE 5.0)
- 软件包 java.lang.ref
- java.lang.ref 类 PhantomReference<T>
- java.lang.ref 类 Reference<T>
- java.lang.ref 类 ReferenceQueue<T>
- java.lang.ref 类 SoftReference<T>
- java.lang.ref 类 WeakReference<T>
- java.lang.reflect 类 AccessibleObject
- java.lang.reflect 接口 AnnotatedElement
- java.lang.reflect 类 Array
- java.lang.reflect 类 Constructor<T>
- java.lang.reflect 类 Field
- java.lang.reflect 接口 GenericArrayType
- java.lang.reflect 接口 GenericDeclaration
- java.lang.reflect 类 GenericSignatureFormatError
- java.lang.reflect 接口 InvocationHandler
- java.lang.reflect 类 InvocationTargetException
- java.lang.reflect 类 MalformedParameterizedTypeException
- java.lang.reflect 接口 Member
- java.lang.reflect 类 Method
- java.lang.reflect 类 Modifier
- java.lang.reflect (Java 2 Platform SE 5.0)
- 软件包 java.lang.reflect
- java.lang.reflect 接口 ParameterizedType
- java.lang.reflect 类 Proxy
- java.lang.reflect 类 ReflectPermission
- java.lang.reflect 接口 Type
- java.lang.reflect 接口 TypeVariable<D extends GenericDeclaration>
- java.lang.reflect 类 UndeclaredThrowableException
- java.lang.reflect 接口 WildcardType
- java.text 类 Annotation
- java.text 类 AttributedCharacterIterator.Attribute
- java.text 接口 AttributedCharacterIterator
- java.text 类 AttributedString
- java.text 类 Bidi
- java.text 类 BreakIterator
- java.text 接口 CharacterIterator
- java.text 类 ChoiceFormat
- java.text 类 CollationElementIterator
- java.text 类 CollationKey
- java.text 类 Collator
- java.text 类 DateFormat.Field
- java.text 类 DateFormat
- java.text 类 DateFormatSymbols
- java.text 类 DecimalFormat
- java.text 类 DecimalFormatSymbols
- java.text 类 FieldPosition
- java.text 类 Format.Field
- java.text 类 Format
- java.text 类 MessageFormat.Field
- java.text 类 MessageFormat
- java.text 类 NumberFormat.Field
- java.text 类 NumberFormat
- java.text (Java 2 Platform SE 5.0)
- 软件包 java.text
- java.text 类 ParseException
- java.text 类 ParsePosition
- java.text 类 RuleBasedCollator
- java.text 类 SimpleDateFormat
- java.text 类 StringCharacterIterator
- java.util 类 AbstractCollection<E>
- java.util 类 AbstractList<E>
- java.util 类 AbstractMap<K,V>
- java.util 类 AbstractQueue<E>
- java.util 类 AbstractSequentialList<E>
- java.util 类 AbstractSet<E>
- java.util 类 ArrayList<E>
- java.util 类 Arrays
- java.util 类 BitSet
- java.util 类 Calendar
- java.util 接口 Collection<E>
- java.util 类 Collections
- java.util 接口 Comparator<T>
- java.util 类 ConcurrentModificationException
- java.util 类 Currency
- java.util 类 Date
- java.util 类 Dictionary<K,V>
- java.util 类 DuplicateFormatFlagsException
- java.util 类 EmptyStackException
- java.util 接口 Enumeration<E>
- java.util 类 EnumMap<K extends Enum<K>,V>
- java.util 类 EnumSet<E extends Enum<E>>
- java.util 接口 EventListener
- java.util 类 EventListenerProxy
- java.util 类 EventObject
- java.util 类 FormatFlagsConversionMismatchException
- java.util 接口 Formattable
- java.util 类 FormattableFlags
- java.util 枚举 Formatter.BigDecimalLayoutForm
- java.util 类 Formatter
- java.util 类 FormatterClosedException
- java.util 类 GregorianCalendar
- java.util 类 HashMap<K,V>
- java.util 类 HashSet<E>
- java.util 类 Hashtable<K,V>
- java.util 类 IdentityHashMap<K,V>
- java.util 类 IllegalFormatCodePointException
- java.util 类 IllegalFormatConversionException
- java.util 类 IllegalFormatException
- java.util 类 IllegalFormatFlagsException
- java.util 类 IllegalFormatPrecisionException
- java.util 类 IllegalFormatWidthException
- java.util 类 InputMismatchException
- java.util 类 InvalidPropertiesFormatException
- java.util 接口 Iterator<E>
- java.util 类 LinkedHashMap<K,V>
- java.util 类 LinkedHashSet<E>
- java.util 类 LinkedList<E>
- java.util 接口 List<E>
- java.util 接口 ListIterator<E>
- java.util 类 ListResourceBundle
- java.util 类 Locale
- java.util 接口 Map.Entry<K,V>
- java.util 接口 Map<K,V>
- java.util 类 MissingFormatArgumentException
- java.util 类 MissingFormatWidthException
- java.util 类 MissingResourceException
- java.util 类 NoSuchElementException
- java.util 类 Observable
- java.util 接口 Observer
- java.util (Java 2 Platform SE 5.0)
- 软件包 java.util
- java.util 类 PriorityQueue<E>
- java.util 类 Properties
- java.util 类 PropertyPermission
- java.util 类 PropertyResourceBundle
- java.util 接口 Queue<E>
- java.util 类 Random
- java.util 接口 RandomAccess
- java.util 类 ResourceBundle
- java.util 类 Scanner
- java.util 接口 Set<E>
- java.util 类 SimpleTimeZone
- java.util 接口 SortedMap<K,V>
- java.util 接口 SortedSet<E>
- java.util 类 Stack<E>
- java.util 类 StringTokenizer
- java.util 类 Timer
- java.util 类 TimerTask
- java.util 类 TimeZone
- java.util 类 TooManyListenersException
- java.util 类 TreeMap<K,V>
- java.util 类 TreeSet<E>
- java.util 类 UnknownFormatConversionException
- java.util 类 UnknownFormatFlagsException
- java.util 类 UUID
- java.util 类 Vector<E>
- java.util 类 WeakHashMap<K,V>
- java.util.concurrent 类 AbstractExecutorService
- java.util.concurrent 类 ArrayBlockingQueue<E>
- java.util.concurrent 接口 BlockingQueue<E>
- java.util.concurrent 类 BrokenBarrierException
- java.util.concurrent 接口 Callable<V>
- java.util.concurrent 类 CancellationException
- java.util.concurrent 接口 CompletionService<V>
- java.util.concurrent 类 ConcurrentHashMap<K,V>
- java.util.concurrent 类 ConcurrentLinkedQueue<E>
- java.util.concurrent 接口 ConcurrentMap<K,V>
- java.util.concurrent 类 CopyOnWriteArrayList<E>
- java.util.concurrent 类 CopyOnWriteArraySet<E>
- java.util.concurrent 类 CountDownLatch
- java.util.concurrent 类 CyclicBarrier
- java.util.concurrent 接口 Delayed
- java.util.concurrent 类 DelayQueue<E extends Delayed>
- java.util.concurrent 类 Exchanger<V>
- java.util.concurrent 类 ExecutionException
- java.util.concurrent 接口 Executor
- java.util.concurrent 类 ExecutorCompletionService<V>
- java.util.concurrent 类 Executors
- java.util.concurrent 接口 ExecutorService
- java.util.concurrent 接口 Future<V>
- java.util.concurrent 类 FutureTask<V>
- java.util.concurrent 类 LinkedBlockingQueue<E>
- java.util.concurrent (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent
- java.util.concurrent 类 PriorityBlockingQueue<E>
- java.util.concurrent 类 RejectedExecutionException
- java.util.concurrent 接口 RejectedExecutionHandler
- java.util.concurrent 接口 ScheduledExecutorService
- java.util.concurrent 接口 ScheduledFuture<V>
- java.util.concurrent 类 ScheduledThreadPoolExecutor
- java.util.concurrent 类 Semaphore
- java.util.concurrent 类 SynchronousQueue<E>
- java.util.concurrent 接口 ThreadFactory
- java.util.concurrent 类 ThreadPoolExecutor.AbortPolicy
- java.util.concurrent 类 ThreadPoolExecutor.CallerRunsPolicy
- java.util.concurrent 类 ThreadPoolExecutor.DiscardOldestPolicy
- java.util.concurrent 类 ThreadPoolExecutor.DiscardPolicy
- java.util.concurrent 类 ThreadPoolExecutor
- java.util.concurrent 类 TimeoutException
- java.util.concurrent 枚举 TimeUnit
- java.util.concurrent.atomic 类 AtomicBoolean
- java.util.concurrent.atomic 类 AtomicInteger
- java.util.concurrent.atomic 类 AtomicIntegerArray
- java.util.concurrent.atomic 类 AtomicIntegerFieldUpdater<T>
- java.util.concurrent.atomic 类 AtomicLong
- java.util.concurrent.atomic 类 AtomicLongArray
- java.util.concurrent.atomic 类 AtomicLongFieldUpdater<T>
- java.util.concurrent.atomic 类 AtomicMarkableReference<V>
- java.util.concurrent.atomic 类 AtomicReference<V>
- java.util.concurrent.atomic 类 AtomicReferenceArray<E>
- java.util.concurrent.atomic 类 AtomicReferenceFieldUpdater<T,V>
- java.util.concurrent.atomic 类 AtomicStampedReference<V>
- java.util.concurrent.atomic (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent.atomic
- java.util.concurrent.locks 类 AbstractQueuedSynchronizer
- java.util.concurrent.locks 接口 Condition
- java.util.concurrent.locks 接口 Lock
- java.util.concurrent.locks 类 LockSupport
- java.util.concurrent.locks (Java 2 Platform SE 5.0)
- 软件包 java.util.concurrent.locks
- java.util.concurrent.locks 接口 ReadWriteLock
- java.util.concurrent.locks 类 ReentrantLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock.ReadLock
- java.util.concurrent.locks 类 ReentrantReadWriteLock.WriteLock
- java.util.jar 类 Attributes
- java.util.jar 类 Attributes.Name
- java.util.jar 类 JarEntry
- java.util.jar 类 JarException
- java.util.jar 类 JarFile
- java.util.jar 类 JarInputStream
- java.util.jar 类 JarOutputStream
- java.util.jar 类 Manifest
- java.util.jar 类 Pack200
- java.util.jar 接口 Pack200.Packer
- java.util.jar 接口 Pack200.Unpacker
- java.util.jar (Java 2 Platform SE 5.0)
- 软件包 java.util.jar
- java.util.logging 类 ConsoleHandler
- java.util.logging 类 ErrorManager
- java.util.logging 类 FileHandler
- java.util.logging 接口 Filter
- java.util.logging 类 Formatter
- java.util.logging 类 Handler
- java.util.logging 类 Level
- java.util.logging 类 Logger
- java.util.logging 接口 LoggingMXBean
- java.util.logging 类 LoggingPermission
- java.util.logging 类 LogManager
- java.util.logging 类 LogRecord
- java.util.logging 类 MemoryHandler
- java.util.logging (Java 2 Platform SE 5.0)
- 软件包 java.util.logging
- java.util.logging 类 SimpleFormatter
- java.util.logging 类 SocketHandler
- java.util.logging 类 StreamHandler
- java.util.logging 类 XMLFormatter
- java.util.prefs 类 AbstractPreferences
- java.util.prefs 类 BackingStoreException
- java.util.prefs 类 InvalidPreferencesFormatException
- java.util.prefs 类 NodeChangeEvent
- java.util.prefs 接口 NodeChangeListener
- java.util.prefs (Java 2 Platform SE 5.0)
- 软件包 java.util.prefs
- java.util.prefs 类 PreferenceChangeEvent
- java.util.prefs 接口 PreferenceChangeListener
- java.util.prefs 类 Preferences
- java.util.prefs 接口 PreferencesFactory
- java.util.regex 类 Matcher
- java.util.regex 接口 MatchResult
- java.util.regex (Java 2 Platform SE 5.0)
- 软件包 java.util.regex
- java.util.regex 类 Pattern
- java.util.regex 类 PatternSyntaxException
- java.util.zip 类 Adler32
- java.util.zip 类 CheckedInputStream
- java.util.zip 类 CheckedOutputStream
- java.util.zip 接口 Checksum
- java.util.zip 类 CRC32
- java.util.zip 类 DataFormatException
- java.util.zip 类 Deflater
- java.util.zip 类 DeflaterOutputStream
- java.util.zip 类 GZIPInputStream
- java.util.zip 类 GZIPOutputStream
- java.util.zip 类 Inflater
- java.util.zip 类 InflaterInputStream
- java.util.zip (Java 2 Platform SE 5.0)
- 软件包 java.util.zip
- java.util.zip 类 ZipEntry
- java.util.zip 类 ZipException
- java.util.zip 类 ZipFile
- java.util.zip 类 ZipInputStream
- java.util.zip 类 ZipOutputStream
java.io 类 ObjectInputStream
java.lang.Object └java.io.InputStream └java.io.ObjectInputStream
- 所有已实现的接口:
- Closeable, DataInput, ObjectInput, ObjectStreamConstants
public class ObjectInputStream
- extends InputStream
- implements ObjectInput, ObjectStreamConstants
ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。
ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的持久性存储。ObjectInputStream 用于恢复那些以前序列化的对象。其他用途包括使用套接字流在主机之间传递对象,或者用于编组和解组远程通信系统中的实参和形参。
ObjectInputStream 确保从流创建的图形中所有对象的类型与 Java 虚拟机中的显示的类相匹配。使用标准机制按需加载类。
只有支持 java.io.Serializable 或 java.io.Externalizable 接口的对象才能从流读取。
readObject
方法用于从流读取对象。应该使用 Java 的安全强制转换来获取所需的类型。在 Java 中,字符串和数组都是对象,所以在序列化期间将其视为对象。读取时,需要将其强制转换为期望的类型。
可以使用 DataInput 上的适当方法从流读取基本数据类型。
默认情况下,对象的反序列化机制会将每个字段的内容还原为写入时它所具有的值和类型。反序列化进程将忽略声明为瞬态或静态的字段。到其他对象的引用使得根据需要从流中读取这些对象。使用引用共享机制能够正确地还原对象的图形。反序列化时始终分配新对象,这样可以避免现有对象被重写。
读取对象类似于运行新对象的构造方法。为对象分配内存并将其初始化为零 (NULL)。为不可序列化类调用无参数构造方法,然后从以最接近 java.lang.object 的可序列化类开始和以对象的最特定类结束的流还原可序列化类的字段。
例如,要按 ObjectOutputStream 中示例的写入从流读取,请执行以下操作:
FileInputStream fis = new FileInputStream("t.tmp"); ObjectInputStream ois = new ObjectInputStream(fis); int i = ois.readInt(); String today = (String) ois.readObject(); Date date = (Date) ois.readObject(); ois.close();
类控制实现 java.io.Serializable 或 java.io.Externalizable 接口时的序列化方式。
实现 Serializable 接口允许对象序列化,以保存和还原对象的全部状态,并且允许类在写入流时的状态和从流读取时的状态之间变化。它自动遍历对象之间的引用,保存和还原全部图形。
在序列化和反序列化进程中需要特殊处理的 Serializable 类应该实现以下方法:
private void writeObject(java.io.ObjectOutputStream stream) throws IOException; private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException; private void readObjectNoData() throws ObjectStreamException;
readObject 方法负责使用通过对应的 writeObject 方法写入流的数据,为特定类读取和还原对象的状态。该方法本身的状态,不管是属于其超类还是属于其子类,都没有关系。还原状态的方法是,从个别字段的 ObjectInputStream 读取数据并将其分配给对象的适当字段。DataInput 支持读取基本数据类型。
尝试读取由对应的 writeObject 方法写入的超出自定义数据边界的对象数据将导致抛出 OptionalDataException(eof 字段值为 true)。超出已分配数据末尾的非对象读取以指示流末尾的方式反映数据末尾:按位读取与字节读取或字节数读取一样,将返回 -1,基元读取将抛出 EOFException。如果不存在对应的 writeObject 方法,则默认的序列化数据的末尾标记已分配数据的末尾。
从 readExternal 方法发出的基元和对象读取调用的行为方式一样:如果流已经定位在由相应 writeExternal 方法写入的数据末尾,则对象读取将抛出 OptionalDataException(其 eof 设置为 true),按位读取将返回 -1,基元读取将抛出 EOFException。注意,此行为不适用于使用旧 ObjectStreamConstants.PROTOCOL_VERSION_1
协议写入的流,在这些流中,没有划分出由 writeExternal 方法写入的数据末尾,因此无法检测。
如果序列化流没有将给定类列为要反序列化的对象的超类,则 readObjectNoData 方法负责初始化其特定类的对象状态。在接收方使用的反序列化实例类的版本不同于发送方,并且接收者版本扩展的类不是发送者版本扩展的类时,此事可能发生。如果序列化流已经被篡改,也会发生这种情况;因此,不管源流是“敌意的”还是不完整的,readObjectNoData 方法都可以用来正确地初始化反序列化的对象。
对于没有实现 java.io.Serializable 接口的任何对象,序列化不会对其字段进行读取或赋值。非 serializable 的 Object 的子类可以为 serializable。在此情况下,非 serializable 类必须具有无参数的构造方法以允许其字段能被初始化。在此情况下,子类负责保存和还原非 serializable 类的状态。经常出现的情况是,该类的字段是可访问的(public、package 或 protected),或者存在可用于还原状态的 get 和 set 方法。
反序列化对象进程中发生的所有异常将由 ObjectInputStream 捕获并将中止读取进程。
实现 Externalizable 接口允许对象假定可以完全控制对象的序列化形式的内容和格式。调用 Externalizable 接口的方法(writeExternal 和 readExternal)来保存和恢复对象状态。当这两种方法被某个类实现时,它们可以使用 ObjectOutput 和 ObjectInput 的所有方法读写其本身的状态。对象负责处理出现的任何版本控制。
Enum 常量的反序列化不同于普通的 serializable 或 externalizable 对象。Enum 常量的序列化形式只包含其名称;不传送常量的字段值。要反序列化 enum 常量,ObjectInputStream 需要从流中读取常量的名称;然后将 enum 常量的基本类型和接收到的常量名称作为参数,调用静态方法 Enum.valueOf(Class, String)
获取反序列化的常量。与其他 serializable 或 externalizable 对象一样,enum 常量可以作为序列化流中随后出现的反向引用的目标。不可以自定义 enum 常量的反序列化进程:在反序列化期间,enum 类型所定义的任何与类有关的 readObject、readObjectNoData 和 readResolve 方法都将被忽略。类似地,任何 serialPersistentFields 或 serialVersionUID 字段声明也将被忽略(所有 enum 类型都有一个固定的 0L 的 serialVersionUID)。
- 从以下版本开始:
- JDK1.1
- 另请参见:
DataInput
,ObjectOutputStream
,Serializable
, Object Serialization Specification, Section 3, Object Input Classes
嵌套类摘要 | |
---|---|
staticclass | ObjectInputStream.GetField 提供对从输入流读取的持久字段的访问权限。 |
字段摘要 |
---|
从接口 java.io.ObjectStreamConstants 继承的字段 |
---|
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING |
构造方法摘要 | |
---|---|
protected | ObjectInputStream() 为完全重新实现 ObjectInputStream 的子类提供一种方式,让它不必分配仅由 ObjectInputStream 的实现使用的私有数据。 |
| ObjectInputStream(InputStreamin) 创建从指定 InputStream 读取的 ObjectInputStream。 |
方法摘要 | |
---|---|
int | available() 返回可以不受阻塞地读取的字节数。 |
void | close() 关闭输入流。 |
void | defaultReadObject() 从此流读取当前类的非静态和非瞬态字段。 |
protected boolean | enableResolveObject(booleanenable) 启用允许从要替代的流读取对象的流。 |
int | read() 读取数据字节。 |
int | read(byte[]buf, intoff, intlen) 读入字节数组。 |
boolean | readBoolean() 以 boolean 形式读取。 |
byte | readByte() 读取一个 8 位的字节。 |
char | readChar() 读取一个 16 位的 char 值。 |
protected ObjectStreamClass | readClassDescriptor() 从序列化流读取类描述符。 |
double | readDouble() 读取一个 64 位的 double 值。 |
ObjectInputStream.GetField | readFields() 按名称从流中读取持久字段并使其可用。 |
float | readFloat() 读取一个 32 位的 float 值。 |
void | readFully(byte[]buf) 读取字节,在读取所有字节前将发生阻塞。 |
void | readFully(byte[]buf, intoff, intlen) 读取字节,在读取所有字节之前将发生阻塞。 |
int | readInt() 读取一个 32 位的 int 值。 |
String | readLine() 已过时。此方法不能正确地将字节转换为字符。请参见 DataInputStream 以获取详细信息和替代方法。 |
long | readLong() 读取一个 64 位的 long 值。 |
Object | readObject() 从 ObjectInputStream 读取对象。 |
protected Object | readObjectOverride() 此方法由使用受保护的无参数构造方法构造 ObjectOutputStream 的 ObjectOutputStream 的受信任子类调用。 |
short | readShort() 读取一个 16 位的 short 值。 |
protected void | readStreamHeader() 提供的 readStreamHeader 方法允许子类读取并验证它们自己的流头部。 |
Object | readUnshared() 从 ObjectInputStream 读取“非共享”对象。 |
int | readUnsignedByte() 读取一个无符号的 8 位字节。 |
int | readUnsignedShort() 读取一个无符号的 16 位 short 值。 |
String | readUTF() 读取 UTF-8 修改版格式的 String。 |
void | registerValidation(ObjectInputValidationobj, intprio) 在返回图形前注册要验证的对象。 |
protected Class<?> | resolveClass(ObjectStreamClassdesc) 加载指定流类描述的本地等价类。 |
protected Object | resolveObject(Objectobj) 在反序列化期间,此方法允许 ObjectInputStream 的受信任子类使用一个对象替代另一个。 |
protected Class<?> | resolveProxyClass(String[]interfaces) 返回一个代理类,该类实现在代理类描述符中命名的接口;子类可以实现此方法,以便从流及动态代理类的描述符中读取自定义数据,允许它们使用接口和代理类的替换加载机制。 |
int | skipBytes(intlen) 跳过字节,在跳过所有字节之前将发生阻塞。 |
从类 java.io.InputStream 继承的方法 |
---|
mark, markSupported, read, reset, skip |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从接口 java.io.ObjectInput 继承的方法 |
---|
read, skip |
构造方法详细信息
ObjectInputStream
public ObjectInputStream(InputStreamin) throws IOException
- 创建从指定 InputStream 读取的 ObjectInputStream。从流读取序列化头部并予以验证。在对应的 ObjectOutputStream 写入并刷新头部之前,此构造方法将阻塞。
如果安装了安全管理器,则重写 ObjectInputStream.readFields 或 ObjectInputStream.readUnshared 方法的子类的构造方法直接或间接调用此构造方法时,它将对 "enableSubclassImplementation" SerializablePermission 进行检查。
- 参数:
in
- 要从中读取的输入流- 抛出:
StreamCorruptedException
- 如果流的头部不正确IOException
- 如果读取流头部时发生 I/O 错误SecurityException
- 如果不受信任的子类非法重写安全敏感的方法NullPointerException
- 如果in
为null
- 另请参见:
ObjectInputStream()
,readFields()
,ObjectOutputStream.ObjectOutputStream(OutputStream)
ObjectInputStream
protected ObjectInputStream() throws IOException, SecurityException
- 为完全重新实现 ObjectInputStream 的子类提供一种方式,让它不必分配仅由 ObjectInputStream 的实现使用的私有数据。
如果已经安装了安全管理器,则此方法首先通过
SerializablePermission("enableSubclassImplementation")
权限调用安全管理器的checkPermission
方法,以确保可以启用子类化。- 抛出:
SecurityException
- 如果安全管理器存在并且其checkPermission
方法不允许启用子类化。IOException
- 另请参见:
SecurityManager.checkPermission(java.security.Permission)
,SerializablePermission
方法详细信息
readObject
public final Object readObject() throws IOException, ClassNotFoundException
- 从 ObjectInputStream 读取对象。对象的类、类的签名和类及所有其超类型的非瞬态和非静态字段的值都将被读取。可以使用 writeObject 和 readObject 方法为类重写默认的反序列化。由此对象引用的对象是可传递读取的,这样 readObject 即可重新构造这些对象的完全等价的图形。
通过完全还原根对象的所有字段及其引用的对象来完全还原根对象。此时,对象验证回调的执行顺序基于其注册优先级。回调在其个别还原时由对象(按照 readObject 特定方法)进行注册。
当 InputStream 中出现问题或者遇到不应反序列化的类时,将抛出异常。所有异常对于 InputStream 而言都是致命的,将使其处于不确定状态;这将持续到调用方忽略或恢复流状态。
- 指定者:
- 接口
ObjectInput
中的readObject
- 返回:
- 从流读取的对象
- 抛出:
ClassNotFoundException
- 找不到序列化对象的类。InvalidClassException
- 序列化使用的类出了问题。StreamCorruptedException
- 流中的控制信息不一致。OptionalDataException
- 在流中而不是对象中找到了基本数据。IOException
- 任何常规的输入/输出相关的异常。
readObjectOverride
protected Object readObjectOverride() throws IOException, ClassNotFoundException
- 此方法由使用受保护的无参数构造方法构造 ObjectOutputStream 的 ObjectOutputStream 的受信任子类调用。子类需要使用修改符 "final" 提供重写方法。
- 返回:
- 从流读取的 Object。
- 抛出:
ClassNotFoundException
- 找不到序列化对象的类定义。OptionalDataException
- 在流中而不是对象中找到了基本数据。IOException
- 如果从基础流执行读操作时发生 I/O 错误- 从以下版本开始:
- 1.2
- 另请参见:
ObjectInputStream()
,readObject()
readUnshared
public Object readUnshared() throws IOException, ClassNotFoundException
- 从 ObjectInputStream 读取“非共享”对象。此方法与 readObject 类似,不同点在于它可以防止对 readObject 和 readUnshared 的后续调用返回对通过此调用获取的反序列化实例的附加引用。尤其是:
- 如果调用 readUnshared 反序列化 back 引用(以前写入流的对象的流表示形式),则抛出 ObjectStreamException。
- 如果 readUnshared 成功返回,则反序列化对由 readUnshared 反序列化的流句柄的 back 引用的任何后续尝试,都将导致抛出 ObjectStreamException。
通过 readUnshared 反序列化一个对象使得与返回对象关联的流句柄无效。注意,此操作本身不能始终保证由 readUnshared 返回的引用是惟一的;反序列化对象可能定义一个 readResolve 方法,该方法将返回一个对他方可见的对象,或者 readUnshared 可能返回一个从流中其他地方或通过外部方法获取的 Class 对象或 enum 常量。
但是,对于不是 enum 常量或 java.lang.Class 实例且没有定义 readResolve 方法的对象,readUnshared 保证返回的对象引用是惟一的,不可从创建它的 ObjectInputStream 中再一次获取,即使操作基础数据流也是如此。此规则保证仅应用于由 readUnshared 返回的基层对象,而不能应用于返回对象图形中的任何以传递方式引用的子对象。
重写此方法的 ObjectInputStream 子类只能在处理 "enableSubclassImplementation" SerializablePermission 的安全上下文中构造;在不具有此权限的情况下,任何实例化这种子类的尝试都将导致抛出 SecurityException。
- 返回:
- 反序列化对象的引用
- 抛出:
ClassNotFoundException
- 如果找不到要反序列化的对象的类StreamCorruptedException
- 如果流中的控制信息不一致ObjectStreamException
- 如果流中已经出现了要反序列化的对象OptionalDataException
- 如果基本数据是流中的下一项IOException
- 如果在反序列化期间发生 I/O 错误
defaultReadObject
public void defaultReadObject() throws IOException, ClassNotFoundException
- 从此流读取当前类的非静态和非瞬态字段。此方法只能从正在反序列化的类的 readObject 方法中调用。如果从其他地方调用该字段,则将抛出 NotActiveException。
- 抛出:
ClassNotFoundException
- 如果找不到序列化对象的类。IOException
- 如果发生 I/O 错误。NotActiveException
- 如果目前流没有正在读取对象。
readFields
public ObjectInputStream.GetField readFields() throws IOException, ClassNotFoundException
- 按名称从流中读取持久字段并使其可用。
- 返回:
- 表示正在反序列化的对象持久字段的
GetField
对象 - 抛出:
ClassNotFoundException
- 如果找不到序列化对象的类。IOException
- 如果发生 I/O 错误。NotActiveException
- 如果目前流没有正在读取对象。- 从以下版本开始:
- 1.2
registerValidation
public void registerValidation(ObjectInputValidationobj, intprio) throws NotActiveException, InvalidObjectException
- 在返回图形前注册要验证的对象。与 resolveObject 类似,这些验证是在重构整个图形后调用的。通常,readObject 方法向流注册对象,这样还原全部对象后,就可以执行最后一组验证了。
- 参数:
obj
- 接收验证回调的对象。prio
- 控制回调的顺序;零是个好的默认值。使用较大数进行较高的回调,使用较小数进行较晚的回调。在一个优先级中,回调的处理没有特定顺序。- 抛出:
NotActiveException
- 因为目前流没有正在读取对象,所以注册回调无效。InvalidObjectException
- 验证对象为 null。
resolveClass
protected Class<?> resolveClass(ObjectStreamClassdesc) throws IOException, ClassNotFoundException
- 加载指定流类描述的本地等价类。子类可以实现此方法,从而允许从替换源获取类。
ObjectOutputStream
中的相应方法是annotateClass
。对于流中的每个惟一类,此方法只调用一次。此方法可以由子类实现,从而使用替换加载机制,但是必须返回Class
对象。返回后,该类的 serialVersionUID 将与序列化类的 serialVersionUID 进行比较。如果不匹配,则反序列化失败,引发异常。默认情况下,类名是相对于调用
readObject
的类进行解析的。 - 参数:
desc
-ObjectStreamClass
类的实例- 返回:
- 对应于
desc
的Class
对象 - 抛出:
IOException
- 任何常规输入/输出异常ClassNotFoundException
- 如果找不到序列化对象的类
resolveProxyClass
protected Class<?> resolveProxyClass(String[]interfaces) throws IOException, ClassNotFoundException
- 返回一个代理类,该类实现在代理类描述符中命名的接口;子类可以实现此方法,以便从流及动态代理类的描述符中读取自定义数据,允许它们使用接口和代理类的替换加载机制。
对于流中的每个惟一的代理类描述符,此方法只调用一次。
ObjectOutputStream
中的相应方法是annotateProxyClass
。对于重写此方法的ObjectInputStream
的给定子类,ObjectOutputStream
的相应子类中的annotateProxyClass
方法必须写入由此方法读取的任何数据或对象。ObjectInputStream
中此方法的默认实现返回调用Proxy.getProxyClass
的结果,同时带有在interfaces
参数中指定接口的Class
对象的列表。每个接口名称i
的Class
对象都是调用以下语句返回的值Class.forName(i, false, loader)
其中,
loader
是执行堆栈上的第一个非null
类加载器,或者如果在堆栈上不存在非null
加载器(类加载器选项与resolveClass
方法使用的相同),则为null
。如果所有解析的接口都是公共的,则loader
的这一相同值还是传递给Proxy.getProxyClass
的类加载器;如果出现非公共接口,则传递他们的类加载器(如果遇到一个以上的非公共接口类加载器,则抛出IllegalAccessError
)。如果Proxy.getProxyClass
抛出IllegalArgumentException
,则resolveProxyClass
将抛出包含IllegalArgumentException
的ClassNotFoundException
。 - 参数:
interfaces
- 代理类描述符中反序列化的接口名称的列表- 返回:
- 指定接口的代理类
- 抛出:
IOException
- 基础InputStream
抛出任何异常ClassNotFoundException
- 如果找不到代理类或任何指定接口- 从以下版本开始:
- 1.3
- 另请参见:
ObjectOutputStream.annotateProxyClass(Class)
resolveObject
protected Object resolveObject(Objectobj) throws IOException
- 在反序列化期间,此方法允许 ObjectInputStream 的受信任子类使用一个对象替代另一个。在调用 enableResolveObject 之前,不允许取代对象。enableResolveObject 方法检查请求解析对象的流是否可以信任。将 serializable 对象的每个引用传递给 resolveObject。为了确保不无意暴露对象的私有状态,可以仅让受信任的流使用 resolveObject。
此方法在读取对象之后而在从 readObject 返回之前调用。默认的 resolveObject 方法仅返回相同的对象。
子类在取代对象时,必须确保替代对象与存储引用的每个字段兼容。如果对象的类型不是字段或数组元素类型的子类,则通过引发异常中止序列化并且不存储对象。
此方法仅在首次遇到每个对象时调用一次。对象的所有后续引用都将被重定向到新对象。
- 参数:
obj
- 要替代的对象- 返回:
- 替代对象
- 抛出:
IOException
- 任何常规的输入/输出异常。
enableResolveObject
protected boolean enableResolveObject(booleanenable) throws SecurityException
- 启用允许从要替代的流读取对象的流。启用时,将为正在反序列化每个对象调用 resolveObject 方法。
如果 enable 为真,并且安装了安全管理器,则此方法首先使用
SerializablePermission("enableSubstitution")
权限调用安全管理器的checkPermission
方法,以确保启用允许从要替代的流读取对象的流。 - 参数:
enable
- 如果为 true,则允许为每个要反序列化的对象使用resolveObject
- 返回:
- 调用此方法之前的以前的设置
- 抛出:
SecurityException
- 如果安全管理器存在,且其checkPermission
方法拒绝流允许从要替代的流读取对象。- 另请参见:
SecurityManager.checkPermission(java.security.Permission)
,SerializablePermission
readStreamHeader
protected void readStreamHeader() throws IOException, StreamCorruptedException
- 提供的 readStreamHeader 方法允许子类读取并验证它们自己的流头部。它可以读取并验证幻数和版本号。
- 抛出:
IOException
- 如果从基础InputStream
读取时发生 I/O 错误StreamCorruptedException
- 如果流中的控制信息不一致
readClassDescriptor
protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException
- 从序列化流读取类描述符。当 ObjectInputStream 期望与序列化流中的下一项具有相同的类描述符时调用此方法。ObjectInputStream 的子类可以重写此方法,以便在以非标准格式编写的类描述符中进行读取(那些类描述符是 ObjectOutputStream 的子类通过重写
writeClassDescriptor
方法编写的)。默认情况下,此方法根据 Object Serialization 规范中定义的格式读取类描述符。 - 返回:
- 读取的类描述符
- 抛出:
IOException
- 如果发生 I/O 错误。ClassNotFoundException
- 如果找不到类描述符表示形式中使用的序列化对象的 Class- 从以下版本开始:
- 1.3
- 另请参见:
ObjectOutputStream.writeClassDescriptor(java.io.ObjectStreamClass)
read
public int read() throws IOException
- 读取数据字节。如果不存在可用的输入,此方法将发生阻塞。
- 指定者:
- 接口
ObjectInput
中的read
- 指定者:
- 类
InputStream
中的read
- 返回:
- 读取的字节;如果已到达流的末尾,则返回 -1。
- 抛出:
IOException
- 如果发生 I/O 错误。
read
public int read(byte[]buf, intoff, intlen) throws IOException
- 读入字节数组。在某些输入可用之前,此方法将发生阻塞。考虑使用 java.io.DataInputStream.readFully 读取正确“长度”的字节。
- 指定者:
- 接口
ObjectInput
中的read
- 覆盖:
- 类
InputStream
中的read
- 参数:
buf
- 读入数据的缓冲区off
- 数据的初始偏移量len
- 读取的最大字节数- 返回:
- 读取字节的实际数,到达流末尾时返回 -1。
- 抛出:
IOException
- 如果发生 I/O 错误。- 另请参见:
DataInputStream.readFully(byte[],int,int)
available
public int available() throws IOException
- 返回可以不受阻塞地读取的字节数。
- 指定者:
- 接口
ObjectInput
中的available
- 覆盖:
- 类
InputStream
中的available
- 返回:
- 可用字节数。
- 抛出:
IOException
- 如果从基础InputStream
读取时发生 I/O 错误
close
public void close() throws IOException
- 关闭输入流。必须调用此方法才能释放与流相关的所有资源。
- 指定者:
- 接口
Closeable
中的close
- 指定者:
- 接口
ObjectInput
中的close
- 覆盖:
- 类
InputStream
中的close
- 抛出:
IOException
- 如果发生 I/O 错误。
readBoolean
public boolean readBoolean() throws IOException
- 以 boolean 形式读取。
- 指定者:
- 接口
DataInput
中的readBoolean
- 返回:
- 读取的 boolean。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readByte
public byte readByte() throws IOException
- 读取一个 8 位的字节。
- 指定者:
- 接口
DataInput
中的readByte
- 返回:
- 读取的 8 位字节。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readUnsignedByte
public int readUnsignedByte() throws IOException
- 读取一个无符号的 8 位字节。
- 指定者:
- 接口
DataInput
中的readUnsignedByte
- 返回:
- 读取的 8 位字节。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readChar
public char readChar() throws IOException
- 读取一个 16 位的 char 值。
- 指定者:
- 接口
DataInput
中的readChar
- 返回:
- 读取的 16 位 char 值。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readShort
public short readShort() throws IOException
- 读取一个 16 位的 short 值。
- 指定者:
- 接口
DataInput
中的readShort
- 返回:
- 读取的 16 位 short 值。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readUnsignedShort
public int readUnsignedShort() throws IOException
- 读取一个无符号的 16 位 short 值。
- 指定者:
- 接口
DataInput
中的readUnsignedShort
- 返回:
- 读取的 16 位 short 值。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readInt
public int readInt() throws IOException
- 读取一个 32 位的 int 值。
- 指定者:
- 接口
DataInput
中的readInt
- 返回:
- 读取的 32 位整数。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readLong
public long readLong() throws IOException
- 读取一个 64 位的 long 值。
- 指定者:
- 接口
DataInput
中的readLong
- 返回:
- 读取的 64 位 long 值。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readFloat
public float readFloat() throws IOException
- 读取一个 32 位的 float 值。
- 指定者:
- 接口
DataInput
中的readFloat
- 返回:
- 读取的 32 位 float 值。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readDouble
public double readDouble() throws IOException
- 读取一个 64 位的 double 值。
- 指定者:
- 接口
DataInput
中的readDouble
- 返回:
- 读取的 64 位 double 值。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readFully
public void readFully(byte[]buf) throws IOException
- 读取字节,在读取所有字节前将发生阻塞。
- 指定者:
- 接口
DataInput
中的readFully
- 参数:
buf
- 读入数据的缓冲区- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readFully
public void readFully(byte[]buf, intoff, intlen) throws IOException
- 读取字节,在读取所有字节之前将发生阻塞。
- 指定者:
- 接口
DataInput
中的readFully
- 参数:
buf
- 读入数据的缓冲区off
- 数据的初始偏移量len
- 要读取的最大字节数- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
skipBytes
public int skipBytes(intlen) throws IOException
- 跳过字节,在跳过所有字节之前将发生阻塞。
- 指定者:
- 接口
DataInput
中的skipBytes
- 参数:
len
- 要跳过的字节数- 返回:
- 跳过的实际字节数。
- 抛出:
EOFException
- 如果到达文件末尾。IOException
- 如果发生其他 I/O 错误。
readLine
@Deprecated public String readLine() throws IOException
- 已过时。此方法不能正确地将字节转换为字符。请参见 DataInputStream 以获取详细信息和替代方法。
- 在以 \n、\r、\r\n 或 EOF 末尾的行中读取。
- 指定者:
- 接口
DataInput
中的readLine
- 返回:
- 行的 String 副本。
- 抛出:
IOException
- 如果从基础InputStream
读取时发生 I/O 错误
readUTF
public String readUTF() throws IOException
- 读取 UTF-8 修改版格式的 String。
- 指定者:
- 接口
DataInput
中的readUTF
- 返回:
- String。
- 抛出:
IOException
- 如果从基础InputStream
读取时发生 I/O 错误UTFDataFormatException
- 如果读取的字节不表示有效的 UTF-8 修改版编码的字符串
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论