PrintStream java.lang.Object |—java.io.OutputStream |—|—java.io.FilterOutputStream |—|—|—java.io.PrintStream public class PrintStream extends FilterOutputStream implements Appendable, Closeable PrintStream 向另一个输出流添加了功能,即能够方便地打印各种数据值的表示形式。 还提供了另外两个功能。 与其他输出流不同,PrintStream 从不抛出 IOException; 相反,异常情况只是设置一个内部标志,可以通过 checkError 方法进行测试。 可选地,可以创建一个 PrintStream 以便自动刷新; 这意味着在写入字节数组、调用 println 方法之一或写入换行符或字节 (‘\n’) 后会自动调用 flush 方法。 PrintStream 打印的所有字符都使用平台的默认字符编码转换为字节。 PrintWriter 类应该用于需要写入字符而不是字节的情况。 Since: JDK1.0 字段摘要 从类 java.io.FilterOutputStream 继承的字段 out 构造函数摘要 构造函数 描述 PrintStream(File file) 使用指定的文件创建一个新的打印流,而不自动刷新行。 PrintStream(File file, String csn) 使用指定的文件和字符集创建一个新的打印流,不自动刷新行。 PrintStream(OutputStream out) 创建一个新的打印流。 PrintStream(OutputStream out, boolean autoFlush) 创建一个新的打印流。 PrintStream(OutputStream out, boolean autoFlush, String encoding) 创建一个新的打印流。 PrintStream(String fileName) 使用指定的文件名创建一个新的打印流,不自动刷新行。 PrintStream(String fileName, String csn) 使用指定的文件名和字符集创建一个新的打印流,不自动刷新行。 方法总结 修饰符和类型 方法 描述 PrintStream append(char c) 将指定的字符附加到此输出流。 PrintStream append(CharSequence csq) 将指定的字符序列附加到此输出流。 PrintStream append(CharSequence csq, int start, int end) 将指定字符序列的子序列附加到此输出流。 boolean checkError() 刷新流并检查其错误状态。 protected void clearError() 清除此流的内部错误状态。 void close() 关闭流。 void flush() 冲洗流。 PrintStream format(String format, Object… args) 使用指定的格式字符串和参数将格式化字符串写入此输出流。 PrintStream format(Locale l, String format, Object… args) 使用指定的格式字符串和参数将格式化字符串写入此输出流。 void print(boolean b) 打印一个布尔值。 void print(char c) 打印一个字符。 void print(char[] s) 打印一个字符数组。 void print(double d) 打印一个双精度浮点数。 void print(float f) 打印一个浮点数。 void print(int i) 打印一个整数。 void print(long l) 打印一个长整数。 void print(Object obj) 打印一个对象。 void print(String s) 打印一个字符串。 PrintStream printf(String format, Object… args)...
PipedWriter java.lang.Object |—java.io.Writer |—|—java.io.PipedWriter public class PipedWriter extends Writer 管道字符输出流。 Since: JDK1.1 字段摘要 从类 java.io.Writer 继承的字段 lock 构造函数摘要 构造函数 描述 PipedWriter() 创建一个尚未连接到管道读取器的管道写入器。 PipedWriter(PipedReader snk) 创建连接到指定管道读取器的管道写入器。 方法总结 修饰符和类型 方法 描述 void close() 关闭此管道输出流并释放与此流关联的任何系统资源。 void connect(PipedReader snk) 将此管道写入器连接到接收器。 void flush() 刷新此输出流并强制写出任何缓冲的输出字符。 void write(char[] cbuf, int off, int len) 将指定字符数组中的 len 个字符从 offset off 处开始写入此管道输出流。 void write(int c) 将指定的字符写入管道输出流。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从类 java.io.Writer 继承的方法 append, append, append, write, write, write 构造函数详细信息 PipedWriter public PipedWriter(PipedReader snk) throws IOException 创建连接到指定管道读取器的管道写入器。 然后,写入此流的数据字符将可用作 snk 的输入。 参数: 参数名称 参数描述 snk 要连接的管道阅读器。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 PipedWriter public PipedWriter() 创建一个尚未连接到管道读取器的管道写入器。 在使用之前,它必须通过接收器或发送器连接到管道阅读器。 方法详情 connect public void connect(PipedReader snk) throws IOException 将此管道写入器连接到接收器。 如果此对象已连接到其他管道读取器,则会引发 IOException。 如果 snk 是一个未连接的管道读取器并且 src 是一个未连接的管道写入器,它们可以通过以下任一调用连接: src.connect(snk) 或调用: snk.connect(src) 这两个调用具有相同的效果。 参数: 参数名称 参数描述 snk 要连接的管道阅读器。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 write public void write(int c) throws IOException 将指定的字符写入管道输出流。 如果线程正在从连接的管道输入流中读取数据字符,但线程不再活动,则抛出 IOException。 实现 Writer 的...
PipedReader java.lang.Object |—java.io.Reader |—|—java.io.PipedReader public class PipedReader extends Reader 管道字符输入流。 Since: JDK1.1 字段摘要 从类 java.io.Reader 继承的字段 lock 构造函数摘要 构造函数 描述 PipedReader() 创建一个 PipedReader 以便它尚未连接。 PipedReader(int pipeSize) 创建一个 PipedReader 以便它尚未连接并使用指定的管道大小作为管道缓冲区。 PipedReader(PipedWriter src) 创建一个 PipedReader 以便它连接到管道编写器 src。 PipedReader(PipedWriter src, int pipeSize) 创建一个 PipedReader 以便它连接到管道写入器 src 并为管道缓冲区使用指定的管道大小。 方法总结 修饰符和类型 方法 描述 void close() 关闭此管道流并释放与该流关联的任何系统资源。 void connect(PipedWriter src) 导致此管道读取器连接到管道写入器 src。 int read() 从此管道流中读取数据的下一个字符。 int read(char[] cbuf, int off, int len) 从此管道流中读取最多 len 个字符的数据到字符数组中。 boolean ready() 判断此流是否已准备好被读取。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从类 java.io.Reader 继承的方法 mark, markSupported, read, read, reset, skip 构造函数详细信息 PipedReader public PipedReader(PipedWriter src) throws IOException 创建一个 PipedReader 以便它连接到管道编写器 src。 然后,写入 src 的数据将可用作此流的输入。 参数: 参数名称 参数描述 src 要连接的流。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 PipedReader public PipedReader(PipedWriter src, int pipeSize) throws IOException 创建一个 PipedReader 以便它连接到管道写入器 src 并为管道缓冲区使用指定的管道大小。 然后,写入 src 的数据将可用作此流的输入。 参数: 参数名称 参数描述 src 要连接的流。 pipeSize 管道缓冲区的大小。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 IllegalArgumentException 如果 pipeSize <= 0. Since: 1.6 PipedReader public PipedReader() 创建一个 PipedReader 以便它尚未连接。 在使用之前,它必须连接到 PipedWriter。 PipedReader...
PipedOutputStream java.lang.Object |—java.io.OutputStream |—|—java.io.PipedOutputStream public class PipedOutputStream extends OutputStream 管道输出流可以连接到管道输入流以创建通信管道。 管道输出流是管道的发送端。 通常,数据由一个线程写入 PipedOutputStream 对象,数据由其他线程从连接的 PipedInputStream 读取。 不建议尝试从单个线程中使用这两个对象,因为它可能会使线程死锁。 如果从连接的管道输入流中读取数据字节的线程不再活动,则称该管道已损坏。 Since: JDK1.0 构造函数摘要 构造函数 描述 PipedOutputStream() 创建尚未连接到管道输入流的管道输出流。 PipedOutputStream(PipedInputStream snk) 创建连接到指定管道输入流的管道输出流。 方法总结 修饰符和类型 方法 描述 void close() 关闭此管道输出流并释放与此流关联的任何系统资源。 void connect(PipedInputStream snk) 将此管道输出流连接到接收器。 void flush() 刷新此输出流并强制写出任何缓冲的输出字节。 void write(byte[] b, int off, int len) 将指定字节数组中的 len 个字节从偏移量 off 处开始写入此管道输出流。 void write(int b) 将指定的字节写入管道输出流。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从类 java.io.OutputStream 继承的方法 write 构造函数详细信息 PipedOutputStream public PipedOutputStream(PipedInputStream snk) throws IOException 创建连接到指定管道输入流的管道输出流。 写入此流的数据字节将作为 snk 的输入提供。 参数: 参数名称 参数描述 snk 要连接的管道输入流。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 PipedOutputStream public PipedOutputStream() 创建尚未连接到管道输入流的管道输出流。 在使用之前,它必须由接收方或发送方连接到管道输入流。 方法详情 connect public void connect(PipedInputStream snk) throws IOException 将此管道输出流连接到接收器。 如果此对象已连接到其他管道输入流,则会引发 IOException。 如果 snk 是未连接的管道输入流并且 src 是未连接的管道输出流,则它们可以通过以下任一调用连接: src.connect(snk) 或调用: snk.connect(src) 这两个调用具有相同的效果。 参数: 参数名称 参数描述 snk 要连接的管道输入流。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 write public void write(int b) throws IOException 将指定的字节写入管道输出流。 实现OutputStream的write方法。 指定者:...
PipedInputStream java.lang.Object |—java.io.InputStream |—|—java.io.PipedInputStream public class PipedInputStream extends InputStream 管道输入流应该连接到管道输出流; 然后,管道输入流提供写入管道输出流的任何数据字节。 通常,数据由一个线程从 PipedInputStream 对象读取,数据由其他线程写入相应的 PipedOutputStream。 不建议尝试从单个线程中使用这两个对象,因为它可能会使线程死锁。 管道输入流包含一个缓冲区,在限制范围内将读取操作与写入操作分离。 如果向连接的管道输出流提供数据字节的线程不再活动,则称该管道已损坏。 Since: JDK1.0 字段摘要 修饰符和类型 字段 描述 protected byte[] buffer 放置传入数据的循环缓冲区。 protected int in 当从连接的管道输出流接收时,循环缓冲区中将存储下一个字节数据的位置的索引。 protected int out 此管道输入流将读取下一个数据字节的循环缓冲区中位置的索引。 protected static int PIPE_SIZE 管道的循环输入缓冲区的默认大小。 构造函数摘要 构造函数 描述 PipedInputStream() 创建一个 PipedInputStream 以便它尚未连接。 PipedInputStream(int pipeSize) 创建一个 PipedInputStream 以便它尚未连接并使用指定的管道大小作为管道缓冲区。 PipedInputStream(PipedOutputStream src) 创建一个 PipedInputStream 以便它连接到管道输出流 src。 PipedInputStream(PipedOutputStream src, int pipeSize) 创建一个 PipedInputStream 以便它连接到管道输出流 src 并为管道缓冲区使用指定的管道大小。 方法总结 修饰符和类型 方法 描述 int available() 返回可以不阻塞地从此输入流中读取的字节数。 void close() 关闭此管道输入流并释放与该流关联的任何系统资源。 void connect(PipedOutputStream src) 导致此管道输入流连接到管道输出流 src。 int read() 从此管道输入流中读取数据的下一个字节。 int read(byte[] b, int off, int len) 从此管道输入流中读取最多 len 个字节的数据到一个字节数组中。 protected void receive(int b) 接收一个字节的数据。 从类 java.io.InputStream 继承的方法 mark, markSupported, read, reset, skip 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 字段详细信息 PIPE_SIZE protected static final int PIPE_SIZE 管道的循环输入缓冲区的默认大小。 Since: JDK1.1 buffer protected byte[] buffer 放置传入数据的循环缓冲区。 Since: JDK1.1 in protected int in 当从连接的管道输出流接收时,循环缓冲区中将存储下一个字节数据的位置的索引。 in<0 表示缓冲区为空,in==out 表示缓冲区已满 Since: JDK1.1 out protected int out 此管道输入流将读取下一个数据字节的循环缓冲区中位置的索引。 Since: JDK1.1 构造函数详细信息 PipedInputStream public PipedInputStream(PipedOutputStream src) throws IOException 创建一个 PipedInputStream...
OutputStreamWriter java.lang.Object |—java.io.Writer |—|—java.io.OutputStreamWriter public class OutputStreamWriter extends Writer OutputStreamWriter 是从字符流到字节流的桥梁:写入其中的字符使用指定的字符集编码为字节。 它使用的字符集可以由名称指定,也可以显式给出,或者可以接受平台的默认字符集。 每次调用 write() 方法都会导致对给定字符调用编码转换器。 结果字节在写入底层输出流之前累积在缓冲区中。 可以指定此缓冲区的大小,但默认情况下它对于大多数用途来说足够大。 请注意,传递给 write() 方法的字符不会被缓冲。 为了获得最高效率,请考虑将 OutputStreamWriter 包装在 BufferedWriter 中,以避免频繁的转换器调用。 例如: Writer out = new BufferedWriter(new OutputStreamWriter(System.out)); 代理项对是由两个 char 值的序列表示的字符:在 ‘\uD800’ 到 ‘\uDBFF’ 范围内的高代理项,然后是在 ‘\uDC00’ 到 ‘\uDFFF’ 范围内的低代理项。 畸形的替代元素是高替代元素之后没有低替代元素或低替代元素之前没有高替代元素。 这个类总是用字符集的默认替换序列替换格式错误的代理元素和不可映射的字符序列。 当需要对编码过程进行更多控制时,应使用 CharsetEncoder 类。 Since: JDK1.1 字段摘要 从类 java.io.Writer 继承的字段 lock 构造函数摘要 构造函数 描述 OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的 OutputStreamWriter。 OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的 OutputStreamWriter。 OutputStreamWriter(OutputStream out, Charset cs) 创建一个使用给定字符集的 OutputStreamWriter。 OutputStreamWriter(OutputStream out, CharsetEncoder enc) 创建一个使用给定字符集编码器的 OutputStreamWriter。 方法总结 修饰符和类型 方法 描述 void close() 关闭流,首先刷新它。 void flush() 冲洗流。 String getEncoding() 返回此流使用的字符编码的名称。 void write(char[] cbuf, int off, int len) 写入字符数组的一部分。 void write(int c) 写入单个字符。 void write(String str, int off, int len) 写入字符串的一部分。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 从类 java.io.Writer 继承的方法 append, append, append, write, write 构造函数详细信息 OutputStreamWriter public OutputStreamWriter(OutputStream out, String charsetName) throws UnsupportedEncodingException 创建一个使用命名字符集的 OutputStreamWriter。 参数: 参数名称 参数描述 out 输出流 charsetName 支持的字符集的名称 Throws: Throw名称 Throw描述 UnsupportedEncodingException 如果不支持命名编码 OutputStreamWriter...
OutputStream java.lang.Object |—java.io.OutputStream public abstract class OutputStream extends Object implements Closeable, Flushable 这个抽象类是代表字节输出流的所有类的超类。 输出流接受输出字节并将它们发送到某个接收器。 需要定义 OutputStream 子类的应用程序必须始终提供至少一个写入一个字节输出的方法。 Since: JDK1.0 构造函数摘要 构造函数 描述 OutputStream() 方法总结 修饰符和类型 方法 描述 void close() 关闭此输出流并释放与此流关联的所有系统资源。 void flush() 刷新此输出流并强制写出任何缓冲的输出字节。 void write(byte[] b) 将指定字节数组中的 b.length 个字节写入此输出流。 void write(byte[] b, int off, int len) 将指定字节数组中的 len 个字节写入此输出流。 abstract void write(int b) 将指定字节写入此输出流。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 OutputStream public OutputStream() 方法详情 write public abstract void write(int b) throws IOException 将指定字节写入此输出流。 写入的一般约定是将一个字节写入输出流。 要写入的字节是参数 b 的 8 个低位。 b 的高 24 位被忽略。 OutputStream 的子类必须提供此方法的实现。 参数: 参数名称 参数描述 b 字节。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 特别是,如果输出流已关闭,则可能会引发 IOException。 write public void write(byte[] b) throws IOException 将指定字节数组中的 b.length 个字节写入此输出流。 write(b) 的一般约定是它应该与调用 write(b, 0, b.length) 具有完全相同的效果。 参数: 参数名称 参数描述 b 数据。 Throws: Throw名称 Throw描述 IOException 如果发生 I/O 错误。 write public void write(byte[] b, int off, int len) throws IOException 将指定字节数组中的...
ObjectStreamField java.lang.Object |—java.io.ObjectStreamField public class ObjectStreamField extends Object implements Comparable<Object> 来自 Serializable 类的 Serializable 字段的描述。 ObjectStreamFields 数组用于声明类的 Serializable 字段。 Since: 1.2 构造函数摘要 构造函数 描述 ObjectStreamField(String name, Class<?> type) 创建具有指定类型的 Serializable 字段。 ObjectStreamField(String name, Class<?> type, boolean unshared) 创建一个表示具有给定名称和类型的可序列化字段的 ObjectStreamField。 方法总结 修饰符和类型 方法 描述 int compareTo(Object obj) 将此字段与另一个 ObjectStreamField 进行比较。 String getName() 获取该字段的名称。 int getOffset() 实例数据中的字段偏移量。 Class<?> getType() 获取字段的类型。 char getTypeCode() 返回字段类型的字符编码。 String getTypeString() 返回 JVM 类型签名。 boolean isPrimitive() 如果此字段具有原始类型,则返回 true。 boolean isUnshared() 返回布尔值,指示此 ObjectStreamField 实例表示的可序列化字段是否未共享。 protected void setOffset(int offset) 实例数据内的偏移量。 String toString() 返回描述该字段的字符串。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 构造函数详细信息 ObjectStreamField public ObjectStreamField(String name, Class<?> type) 创建具有指定类型的 Serializable 字段。 该字段应使用 serialField 标签记录。 参数: 参数名称 参数描述 name 可序列化字段的名称 type 可序列化字段的 Class 对象 ObjectStreamField public ObjectStreamField(String name, Class<?> type, boolean unshared) 创建一个表示具有给定名称和类型的可序列化字段的 ObjectStreamField。 如果 unshared 为 false,则表示字段的值以默认方式进行序列化和反序列化 – 如果该字段是非原始的,则对象值将被序列化和反序列化,就好像它们已通过调用 writeObject 和 readObject 进行写入和读取一样。 如果 unshared 为真,则表示字段的值将被序列化和反序列化,就好像它们已通过调用 writeUnshared 和 readUnshared 进行写入和读取一样。 参数: 参数名称 参数描述 name 字段名称 type 字段类型...
ObjectStreamClass java.lang.Object |—java.io.ObjectStreamClass public class ObjectStreamClass extends Object implements Serializable 类的序列化描述符。 它包含类的名称和 serialVersionUID。 可以使用查找方法找到/创建此 Java VM 中加载的特定类的 ObjectStreamClass。 计算 SerialVersionUID 的算法在对象序列化规范,第 4.6 节,流唯一标识符中描述。 Since: JDK1.1 字段摘要 修饰符和类型 字段 描述 static ObjectStreamField[] NO_FIELDS serialPersistentFields 值指示没有可序列化的字段 方法总结 修饰符和类型 方法 描述 Class<?> forClass() 返回此版本映射到的本地 VM 中的类。 ObjectStreamField getField(String name) 按名称获取此类的字段。 ObjectStreamField[] getFields() 返回此可序列化类的字段数组。 String getName() 返回此描述符所描述的类的名称。 long getSerialVersionUID() 返回此类的 serialVersionUID。 static ObjectStreamClass lookup(Class<?> cl) 查找可以序列化的类的描述符。 static ObjectStreamClass lookupAny(Class<?> cl) 返回任何类的描述符,无论它是否实现 Serializable。 String toString() 返回描述此 ObjectStreamClass 的字符串。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 字段详细信息 NO_FIELDS public static final ObjectStreamField[] NO_FIELDS serialPersistentFields 值指示没有可序列化的字段 方法详情 lookup public static ObjectStreamClass lookup(Class<?> cl) 查找可以序列化的类的描述符。 如果类尚不存在,则创建一个 ObjectStreamClass 实例。 如果指定的类没有实现 java.io.Serializable 或 java.io.Externalizable,则返回 Null。 参数: 参数名称 参数描述 cl 获取描述符的类 返回: 指定类的类描述符 lookupAny public static ObjectStreamClass lookupAny(Class<?> cl) 返回任何类的描述符,无论它是否实现 Serializable。 参数: 参数名称 参数描述 cl 获取描述符的类 返回: 指定类的类描述符 Since: 1.6 getName public String getName() 返回此描述符所描述的类的名称。 此方法以 Class#getName...
ObjectOutputStream.PutField java.lang.Object |—java.io.ObjectOutputStream.PutField public abstract static class ObjectOutputStream.PutField extends Object 提供对要写入 ObjectOutput 的持久字段的编程访问。 Since: 1.2 构造函数摘要 构造函数 描述 PutField() 方法总结 修饰符和类型 方法 描述 abstract void put(String name, boolean val) 将命名布尔字段的值放入持久字段中。 abstract void put(String name, byte val) 将命名字节字段的值放入持久字段。 abstract void put(String name, char val) 将命名 char 字段的值放入持久字段。 abstract void put(String name, double val) 将命名双字段的值放入持久字段。 abstract void put(String name, float val) 将命名浮点字段的值放入持久字段。 abstract void put(String name, int val) 将命名的 int 字段的值放入持久字段中。 abstract void put(String name, long val) 将命名长字段的值放入持久字段。 abstract void put(String name, short val) 将命名短字段的值放入持久字段中。 abstract void put(String name, Object val) 将命名对象字段的值放入持久字段。 abstract void write(ObjectOutput out) 已弃用。 此方法不会以正确的格式写入此 PutField 对象包含的值,并且可能会导致序列化流损坏。 写入 PutField 数据的正确方法是调用 ObjectOutputStream.writeFields() 方法。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 PutField public PutField() 方法详情 put public abstract void put(String name, boolean val) 将命名布尔字段的值放入持久字段中。 参数: 参数名称 参数描述 name 可序列化字段的名称 val 要分配给字段的值 Throws: Throw名称 Throw描述 IllegalArgumentException 如果名称与正在写入其字段的类的可序列化字段的名称不匹配,或者如果命名字段的类型不是布尔值 put public abstract void put(String name, byte val) 将命名字节字段的值放入持久字段。 参数: 参数名称 参数描述 name 可序列化字段的名称 val 要分配给字段的值 Throws: Throw名称 Throw描述 IllegalArgumentException 如果名称与正在写入其字段的类的可序列化字段的名称不匹配,或者如果命名字段的类型不是字节 put public abstract void put(String name, char val) 将命名 char 字段的值放入持久字段。 参数: 参数名称 参数描述 name 可序列化字段的名称...