Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
JDK 17 java.base.jmod - Base Module
JDK 17 java.base.jmod is the JMOD file for JDK 17 Base module.
JDK 17 Base module compiled class files are stored in \fyicenter\jdk-17.0.5\jmods\java.base.jmod.
JDK 17 Base module compiled class files are also linked and stored in the \fyicenter\jdk-17.0.5\lib\modules JImage file.
JDK 17 Base module source code files are stored in \fyicenter\jdk-17.0.5\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ java/io/PushbackReader.java
/* * Copyright (c) 1996, 2021, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.io; import java.util.Objects; /** * A character-stream reader that allows characters to be pushed back into the * stream. * * @author Mark Reinhold * @since 1.1 */ public class PushbackReader extends FilterReader { /** Pushback buffer */ private char[] buf; /** Current position in buffer */ private int pos; /** * Creates a new pushback reader with a pushback buffer of the given size. * * @param in The reader from which characters will be read * @param size The size of the pushback buffer * @throws IllegalArgumentException if {@code size <= 0} */ public PushbackReader(Reader in, int size) { super(in); if (size <= 0) { throw new IllegalArgumentException("size <= 0"); } this.buf = new char[size]; this.pos = size; } /** * Creates a new pushback reader with a one-character pushback buffer. * * @param in The reader from which characters will be read */ public PushbackReader(Reader in) { this(in, 1); } /** Checks to make sure that the stream has not been closed. */ private void ensureOpen() throws IOException { if (buf == null) throw new IOException("Stream closed"); } /** * Reads a single character. * * @return The character read, or -1 if the end of the stream has been * reached * * @throws IOException If an I/O error occurs */ public int read() throws IOException { synchronized (lock) { ensureOpen(); if (pos < buf.length) return buf[pos++]; else return super.read(); } } /** * {@inheritDoc} */ public int read(char[] cbuf, int off, int len) throws IOException { synchronized (lock) { ensureOpen(); try { Objects.checkFromIndexSize(off, len, cbuf.length); if (len == 0) { return 0; } int avail = buf.length - pos; if (avail > 0) { if (len < avail) avail = len; System.arraycopy(buf, pos, cbuf, off, avail); pos += avail; off += avail; len -= avail; } if (len > 0) { len = super.read(cbuf, off, len); if (len == -1) { return (avail == 0) ? -1 : avail; } return avail + len; } return avail; } catch (ArrayIndexOutOfBoundsException e) { throw new IndexOutOfBoundsException(); } } } /** * Pushes back a single character by copying it to the front of the * pushback buffer. After this method returns, the next character to be read * will have the value {@code (char)c}. * * @param c The int value representing a character to be pushed back * * @throws IOException If the pushback buffer is full, * or if some other I/O error occurs */ public void unread(int c) throws IOException { synchronized (lock) { ensureOpen(); if (pos == 0) throw new IOException("Pushback buffer overflow"); buf[--pos] = (char) c; } } /** * Pushes back a portion of an array of characters by copying it to the * front of the pushback buffer. After this method returns, the next * character to be read will have the value {@code cbuf[off]}, the * character after that will have the value {@code cbuf[off+1]}, and * so forth. * * @param cbuf Character array * @param off Offset of first character to push back * @param len Number of characters to push back * * @throws IOException If there is insufficient room in the pushback * buffer, or if some other I/O error occurs */ public void unread(char[] cbuf, int off, int len) throws IOException { synchronized (lock) { ensureOpen(); if (len > pos) throw new IOException("Pushback buffer overflow"); pos -= len; System.arraycopy(cbuf, off, buf, pos, len); } } /** * Pushes back an array of characters by copying it to the front of the * pushback buffer. After this method returns, the next character to be * read will have the value {@code cbuf[0]}, the character after that * will have the value {@code cbuf[1]}, and so forth. * * @param cbuf Character array to push back * * @throws IOException If there is insufficient room in the pushback * buffer, or if some other I/O error occurs */ public void unread(char[] cbuf) throws IOException { unread(cbuf, 0, cbuf.length); } /** * Tells whether this stream is ready to be read. * * @throws IOException If an I/O error occurs */ public boolean ready() throws IOException { synchronized (lock) { ensureOpen(); return (pos < buf.length) || super.ready(); } } /** * Marks the present position in the stream. The {@code mark} * for class {@code PushbackReader} always throws an exception. * * @throws IOException Always, since mark is not supported */ public void mark(int readAheadLimit) throws IOException { throw new IOException("mark/reset not supported"); } /** * Resets the stream. The {@code reset} method of * {@code PushbackReader} always throws an exception. * * @throws IOException Always, since reset is not supported */ public void reset() throws IOException { throw new IOException("mark/reset not supported"); } /** * Tells whether this stream supports the mark() operation, which it does * not. */ public boolean markSupported() { return false; } /** * Closes the stream and releases any system resources associated with * it. Once the stream has been closed, further read(), * unread(), ready(), or skip() invocations will throw an IOException. * Closing a previously closed stream has no effect. This method will block * while there is another thread blocking on the reader. * * @throws IOException If an I/O error occurs */ public void close() throws IOException { synchronized (lock) { super.close(); buf = null; } } /** * {@inheritDoc} */ public long skip(long n) throws IOException { if (n < 0L) throw new IllegalArgumentException("skip value is negative"); synchronized (lock) { ensureOpen(); int avail = buf.length - pos; if (avail > 0) { if (n <= avail) { pos += n; return n; } else { pos = buf.length; n -= avail; } } return avail + super.skip(n); } } }
⏎ java/io/PushbackReader.java
Or download all of them as a single archive file:
File name: java.base-17.0.5-src.zip File size: 8883851 bytes Release date: 2022-09-13 Download
2023-09-26, 157738👍, 1💬
Popular Posts:
What Is ojdbc8.jar for Oracle 12c R2? ojdbc8.jar for Oracle 12c R2 is the JAR files of ojdbc.jar, JD...
Apache Avalon began in 1999 as the Java Apache Server Framework and in late 2002 separated from the ...
iText is an ideal library for developers looking to enhance web- and other applications with dynamic...
JDK 6 tools.jar is the JAR file for JDK 6 tools. It contains Java classes to support different JDK t...
JDK 11 jdk.aot.jmod is the JMOD file for JDK 11 Ahead-of-Time (AOT) Compiler module. JDK 11 AOT Comp...