📄 inputstreamreader.java
字号:
/* * Copyright 1996-2002 Sun Microsystems, Inc. All Rights Reserved. * * This software is the proprietary information of Sun Microsystems, Inc. * Use is subject to license terms. * */package java.io;import com.sun.cldc.i18n.*;/** * An InputStreamReader is a bridge from byte streams to character streams: It * reads bytes and translates them into characters. * The encoding that it uses may be specified by name, or the platform's default * encoding may be accepted. * * <p> Each invocation of one of an InputStreamReader's read() methods may * cause one or more bytes to be read from the underlying byte-input stream. * To enable the efficient conversion of bytes to characters, more bytes may * be read ahead from the underlying stream than are necessary to satisfy the * current read operation. * * @version 1.0, 12/15/99 (CLDC 1.0, Spring 2000) * @author Nik Shaylor * @since CLDC 1.0 */public class InputStreamReader extends Reader { /** * The underlying character-input stream. */ private Reader in; /** * Create an InputStreamReader that uses the default character encoding. * * @param is An InputStream */ public InputStreamReader(InputStream is) { in = Helper.getStreamReader(is); } /** * Create an InputStreamReader that uses the named character encoding. * * @param is An InputStream * @param enc The name of a supported * * @exception UnsupportedEncodingException * If the named encoding is not supported */ public InputStreamReader(InputStream is, String enc) throws UnsupportedEncodingException { in = Helper.getStreamReader(is, enc); } /** * Check to make sure that the stream has not been closed */ private void ensureOpen() throws IOException { if (in == null) { throw new IOException("Stream closed"); } } /** * Read a single character. * * @exception IOException If an I/O error occurs */ public int read() throws IOException { ensureOpen(); return in.read(); } /** * Read characters into a portion of an array. * * @exception IOException If an I/O error occurs */ public int read(char cbuf[], int off, int len) throws IOException { ensureOpen(); if ((off < 0) || (off > cbuf.length) || (len < 0) || ((off + len) > cbuf.length) || ((off + len) < 0)) { throw new IndexOutOfBoundsException(); } else if (len == 0) { return 0; } return in.read(cbuf, off, len); } /** * Skip characters. * * @exception IOException If an I/O error occurs */ public long skip(long n) throws IOException { ensureOpen(); return in.skip(n); } /** * Tell whether this stream is ready to be read. * * @exception IOException If an I/O error occurs */ public boolean ready() throws IOException { ensureOpen(); return in.ready(); } /** * Tell whether this stream supports the mark() operation. */ public boolean markSupported() { if (in == null) { return false; } return in.markSupported(); } /** * Mark the present position in the stream. * * @exception IOException If an I/O error occurs */ public void mark(int readAheadLimit) throws IOException { ensureOpen(); if (in.markSupported()) { in.mark(readAheadLimit); } else { throw new IOException("mark() not supported"); } } /** * Reset the stream. * * @exception IOException If an I/O error occurs */ public void reset() throws IOException { ensureOpen(); in.reset(); } /** * Close the stream. * * @exception IOException If an I/O error occurs */ public void close() throws IOException { if (in != null) { in.close(); in = null; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -