1 /* |
1 /* |
2 * Copyright (c) 1994, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1994, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
87 * |
87 * |
88 * @param b the buffer into which the data is read. |
88 * @param b the buffer into which the data is read. |
89 * @return the total number of bytes read into the buffer, or |
89 * @return the total number of bytes read into the buffer, or |
90 * <code>-1</code> if there is no more data because the end |
90 * <code>-1</code> if there is no more data because the end |
91 * of the stream has been reached. |
91 * of the stream has been reached. |
92 * @exception IOException if the first byte cannot be read for any reason |
92 * @throws IOException if the first byte cannot be read for any reason |
93 * other than end of file, the stream has been closed and the underlying |
93 * other than end of file, the stream has been closed and the underlying |
94 * input stream does not support reading after close, or another I/O |
94 * input stream does not support reading after close, or another I/O |
95 * error occurs. |
95 * error occurs. |
96 * @see java.io.FilterInputStream#in |
96 * @see java.io.FilterInputStream#in |
97 * @see java.io.InputStream#read(byte[], int, int) |
97 * @see java.io.InputStream#read(byte[], int, int) |
98 */ |
98 */ |
99 public final int read(byte b[]) throws IOException { |
99 public final int read(byte b[]) throws IOException { |
100 return in.read(b, 0, b.length); |
100 return in.read(b, 0, b.length); |
127 * <p> In every case, elements <code>b[0]</code> through |
127 * <p> In every case, elements <code>b[0]</code> through |
128 * <code>b[off]</code> and elements <code>b[off+len]</code> through |
128 * <code>b[off]</code> and elements <code>b[off+len]</code> through |
129 * <code>b[b.length-1]</code> are unaffected. |
129 * <code>b[b.length-1]</code> are unaffected. |
130 * |
130 * |
131 * @param b the buffer into which the data is read. |
131 * @param b the buffer into which the data is read. |
132 * @param off the start offset in the destination array <code>b</code> |
132 * @param off the start offset in the destination array <code>b</code> |
133 * @param len the maximum number of bytes read. |
133 * @param len the maximum number of bytes read. |
134 * @return the total number of bytes read into the buffer, or |
134 * @return the total number of bytes read into the buffer, or |
135 * <code>-1</code> if there is no more data because the end |
135 * <code>-1</code> if there is no more data because the end |
136 * of the stream has been reached. |
136 * of the stream has been reached. |
137 * @exception NullPointerException If <code>b</code> is <code>null</code>. |
137 * @throws NullPointerException If <code>b</code> is <code>null</code>. |
138 * @exception IndexOutOfBoundsException If <code>off</code> is negative, |
138 * @throws IndexOutOfBoundsException If <code>off</code> is negative, |
139 * <code>len</code> is negative, or <code>len</code> is greater than |
139 * <code>len</code> is negative, or <code>len</code> is greater than |
140 * <code>b.length - off</code> |
140 * <code>b.length - off</code> |
141 * @exception IOException if the first byte cannot be read for any reason |
141 * @throws IOException if the first byte cannot be read for any reason |
142 * other than end of file, the stream has been closed and the underlying |
142 * other than end of file, the stream has been closed and the underlying |
143 * input stream does not support reading after close, or another I/O |
143 * input stream does not support reading after close, or another I/O |
144 * error occurs. |
144 * error occurs. |
145 * @see java.io.FilterInputStream#in |
145 * @see java.io.FilterInputStream#in |
146 * @see java.io.InputStream#read(byte[], int, int) |
146 * @see java.io.InputStream#read(byte[], int, int) |
147 */ |
147 */ |
148 public final int read(byte b[], int off, int len) throws IOException { |
148 public final int read(byte b[], int off, int len) throws IOException { |
149 return in.read(b, off, len); |
149 return in.read(b, off, len); |
179 * input stream. |
179 * input stream. |
180 * |
180 * |
181 * @param b the buffer into which the data is read. |
181 * @param b the buffer into which the data is read. |
182 * @param off the start offset in the data array {@code b}. |
182 * @param off the start offset in the data array {@code b}. |
183 * @param len the number of bytes to read. |
183 * @param len the number of bytes to read. |
184 * @exception NullPointerException if {@code b} is {@code null}. |
184 * @throws NullPointerException if {@code b} is {@code null}. |
185 * @exception IndexOutOfBoundsException if {@code off} is negative, |
185 * @throws IndexOutOfBoundsException if {@code off} is negative, |
186 * {@code len} is negative, or {@code len} is greater than |
186 * {@code len} is negative, or {@code len} is greater than |
187 * {@code b.length - off}. |
187 * {@code b.length - off}. |
188 * @exception EOFException if this input stream reaches the end before |
188 * @throws EOFException if this input stream reaches the end before |
189 * reading all the bytes. |
189 * reading all the bytes. |
190 * @exception IOException the stream has been closed and the contained |
190 * @throws IOException the stream has been closed and the contained |
191 * input stream does not support reading after close, or |
191 * input stream does not support reading after close, or |
192 * another I/O error occurs. |
192 * another I/O error occurs. |
193 * @see java.io.FilterInputStream#in |
193 * @see java.io.FilterInputStream#in |
194 */ |
194 */ |
195 public final void readFully(byte b[], int off, int len) throws IOException { |
195 public final void readFully(byte b[], int off, int len) throws IOException { |
211 * Bytes for this operation are read from the contained |
211 * Bytes for this operation are read from the contained |
212 * input stream. |
212 * input stream. |
213 * |
213 * |
214 * @param n the number of bytes to be skipped. |
214 * @param n the number of bytes to be skipped. |
215 * @return the actual number of bytes skipped. |
215 * @return the actual number of bytes skipped. |
216 * @exception IOException if the contained input stream does not support |
216 * @throws IOException if the contained input stream does not support |
217 * seek, or the stream has been closed and |
217 * seek, or the stream has been closed and |
218 * the contained input stream does not support |
218 * the contained input stream does not support |
219 * reading after close, or another I/O error occurs. |
219 * reading after close, or another I/O error occurs. |
220 */ |
220 */ |
221 public final int skipBytes(int n) throws IOException { |
221 public final int skipBytes(int n) throws IOException { |
235 * <p> |
235 * <p> |
236 * Bytes for this operation are read from the contained |
236 * Bytes for this operation are read from the contained |
237 * input stream. |
237 * input stream. |
238 * |
238 * |
239 * @return the <code>boolean</code> value read. |
239 * @return the <code>boolean</code> value read. |
240 * @exception EOFException if this input stream has reached the end. |
240 * @throws EOFException if this input stream has reached the end. |
241 * @exception IOException the stream has been closed and the contained |
241 * @throws IOException the stream has been closed and the contained |
242 * input stream does not support reading after close, or |
242 * input stream does not support reading after close, or |
243 * another I/O error occurs. |
243 * another I/O error occurs. |
244 * @see java.io.FilterInputStream#in |
244 * @see java.io.FilterInputStream#in |
245 */ |
245 */ |
246 public final boolean readBoolean() throws IOException { |
246 public final boolean readBoolean() throws IOException { |
258 * for this operation are read from the contained |
258 * for this operation are read from the contained |
259 * input stream. |
259 * input stream. |
260 * |
260 * |
261 * @return the next byte of this input stream as a signed 8-bit |
261 * @return the next byte of this input stream as a signed 8-bit |
262 * <code>byte</code>. |
262 * <code>byte</code>. |
263 * @exception EOFException if this input stream has reached the end. |
263 * @throws EOFException if this input stream has reached the end. |
264 * @exception IOException the stream has been closed and the contained |
264 * @throws IOException the stream has been closed and the contained |
265 * input stream does not support reading after close, or |
265 * input stream does not support reading after close, or |
266 * another I/O error occurs. |
266 * another I/O error occurs. |
267 * @see java.io.FilterInputStream#in |
267 * @see java.io.FilterInputStream#in |
268 */ |
268 */ |
269 public final byte readByte() throws IOException { |
269 public final byte readByte() throws IOException { |
281 * for this operation are read from the contained |
281 * for this operation are read from the contained |
282 * input stream. |
282 * input stream. |
283 * |
283 * |
284 * @return the next byte of this input stream, interpreted as an |
284 * @return the next byte of this input stream, interpreted as an |
285 * unsigned 8-bit number. |
285 * unsigned 8-bit number. |
286 * @exception EOFException if this input stream has reached the end. |
286 * @throws EOFException if this input stream has reached the end. |
287 * @exception IOException the stream has been closed and the contained |
287 * @throws IOException the stream has been closed and the contained |
288 * input stream does not support reading after close, or |
288 * input stream does not support reading after close, or |
289 * another I/O error occurs. |
289 * another I/O error occurs. |
290 * @see java.io.FilterInputStream#in |
290 * @see java.io.FilterInputStream#in |
291 */ |
291 */ |
292 public final int readUnsignedByte() throws IOException { |
292 public final int readUnsignedByte() throws IOException { |
304 * for this operation are read from the contained |
304 * for this operation are read from the contained |
305 * input stream. |
305 * input stream. |
306 * |
306 * |
307 * @return the next two bytes of this input stream, interpreted as a |
307 * @return the next two bytes of this input stream, interpreted as a |
308 * signed 16-bit number. |
308 * signed 16-bit number. |
309 * @exception EOFException if this input stream reaches the end before |
309 * @throws EOFException if this input stream reaches the end before |
310 * reading two bytes. |
310 * reading two bytes. |
311 * @exception IOException the stream has been closed and the contained |
311 * @throws IOException the stream has been closed and the contained |
312 * input stream does not support reading after close, or |
312 * input stream does not support reading after close, or |
313 * another I/O error occurs. |
313 * another I/O error occurs. |
314 * @see java.io.FilterInputStream#in |
314 * @see java.io.FilterInputStream#in |
315 */ |
315 */ |
316 public final short readShort() throws IOException { |
316 public final short readShort() throws IOException { |
329 * for this operation are read from the contained |
329 * for this operation are read from the contained |
330 * input stream. |
330 * input stream. |
331 * |
331 * |
332 * @return the next two bytes of this input stream, interpreted as an |
332 * @return the next two bytes of this input stream, interpreted as an |
333 * unsigned 16-bit integer. |
333 * unsigned 16-bit integer. |
334 * @exception EOFException if this input stream reaches the end before |
334 * @throws EOFException if this input stream reaches the end before |
335 * reading two bytes. |
335 * reading two bytes. |
336 * @exception IOException the stream has been closed and the contained |
336 * @throws IOException the stream has been closed and the contained |
337 * input stream does not support reading after close, or |
337 * input stream does not support reading after close, or |
338 * another I/O error occurs. |
338 * another I/O error occurs. |
339 * @see java.io.FilterInputStream#in |
339 * @see java.io.FilterInputStream#in |
340 */ |
340 */ |
341 public final int readUnsignedShort() throws IOException { |
341 public final int readUnsignedShort() throws IOException { |
354 * for this operation are read from the contained |
354 * for this operation are read from the contained |
355 * input stream. |
355 * input stream. |
356 * |
356 * |
357 * @return the next two bytes of this input stream, interpreted as a |
357 * @return the next two bytes of this input stream, interpreted as a |
358 * <code>char</code>. |
358 * <code>char</code>. |
359 * @exception EOFException if this input stream reaches the end before |
359 * @throws EOFException if this input stream reaches the end before |
360 * reading two bytes. |
360 * reading two bytes. |
361 * @exception IOException the stream has been closed and the contained |
361 * @throws IOException the stream has been closed and the contained |
362 * input stream does not support reading after close, or |
362 * input stream does not support reading after close, or |
363 * another I/O error occurs. |
363 * another I/O error occurs. |
364 * @see java.io.FilterInputStream#in |
364 * @see java.io.FilterInputStream#in |
365 */ |
365 */ |
366 public final char readChar() throws IOException { |
366 public final char readChar() throws IOException { |
379 * for this operation are read from the contained |
379 * for this operation are read from the contained |
380 * input stream. |
380 * input stream. |
381 * |
381 * |
382 * @return the next four bytes of this input stream, interpreted as an |
382 * @return the next four bytes of this input stream, interpreted as an |
383 * <code>int</code>. |
383 * <code>int</code>. |
384 * @exception EOFException if this input stream reaches the end before |
384 * @throws EOFException if this input stream reaches the end before |
385 * reading four bytes. |
385 * reading four bytes. |
386 * @exception IOException the stream has been closed and the contained |
386 * @throws IOException the stream has been closed and the contained |
387 * input stream does not support reading after close, or |
387 * input stream does not support reading after close, or |
388 * another I/O error occurs. |
388 * another I/O error occurs. |
389 * @see java.io.FilterInputStream#in |
389 * @see java.io.FilterInputStream#in |
390 */ |
390 */ |
391 public final int readInt() throws IOException { |
391 public final int readInt() throws IOException { |
408 * for this operation are read from the contained |
408 * for this operation are read from the contained |
409 * input stream. |
409 * input stream. |
410 * |
410 * |
411 * @return the next eight bytes of this input stream, interpreted as a |
411 * @return the next eight bytes of this input stream, interpreted as a |
412 * <code>long</code>. |
412 * <code>long</code>. |
413 * @exception EOFException if this input stream reaches the end before |
413 * @throws EOFException if this input stream reaches the end before |
414 * reading eight bytes. |
414 * reading eight bytes. |
415 * @exception IOException the stream has been closed and the contained |
415 * @throws IOException the stream has been closed and the contained |
416 * input stream does not support reading after close, or |
416 * input stream does not support reading after close, or |
417 * another I/O error occurs. |
417 * another I/O error occurs. |
418 * @see java.io.FilterInputStream#in |
418 * @see java.io.FilterInputStream#in |
419 */ |
419 */ |
420 public final long readLong() throws IOException { |
420 public final long readLong() throws IOException { |
437 * for this operation are read from the contained |
437 * for this operation are read from the contained |
438 * input stream. |
438 * input stream. |
439 * |
439 * |
440 * @return the next four bytes of this input stream, interpreted as a |
440 * @return the next four bytes of this input stream, interpreted as a |
441 * <code>float</code>. |
441 * <code>float</code>. |
442 * @exception EOFException if this input stream reaches the end before |
442 * @throws EOFException if this input stream reaches the end before |
443 * reading four bytes. |
443 * reading four bytes. |
444 * @exception IOException the stream has been closed and the contained |
444 * @throws IOException the stream has been closed and the contained |
445 * input stream does not support reading after close, or |
445 * input stream does not support reading after close, or |
446 * another I/O error occurs. |
446 * another I/O error occurs. |
447 * @see java.io.DataInputStream#readInt() |
447 * @see java.io.DataInputStream#readInt() |
448 * @see java.lang.Float#intBitsToFloat(int) |
448 * @see java.lang.Float#intBitsToFloat(int) |
449 */ |
449 */ |
459 * for this operation are read from the contained |
459 * for this operation are read from the contained |
460 * input stream. |
460 * input stream. |
461 * |
461 * |
462 * @return the next eight bytes of this input stream, interpreted as a |
462 * @return the next eight bytes of this input stream, interpreted as a |
463 * <code>double</code>. |
463 * <code>double</code>. |
464 * @exception EOFException if this input stream reaches the end before |
464 * @throws EOFException if this input stream reaches the end before |
465 * reading eight bytes. |
465 * reading eight bytes. |
466 * @exception IOException the stream has been closed and the contained |
466 * @throws IOException the stream has been closed and the contained |
467 * input stream does not support reading after close, or |
467 * input stream does not support reading after close, or |
468 * another I/O error occurs. |
468 * another I/O error occurs. |
469 * @see java.io.DataInputStream#readLong() |
469 * @see java.io.DataInputStream#readLong() |
470 * @see java.lang.Double#longBitsToDouble(long) |
470 * @see java.lang.Double#longBitsToDouble(long) |
471 */ |
471 */ |
496 * BufferedReader d |
496 * BufferedReader d |
497 * = new BufferedReader(new InputStreamReader(in)); |
497 * = new BufferedReader(new InputStreamReader(in)); |
498 * </pre></blockquote> |
498 * </pre></blockquote> |
499 * |
499 * |
500 * @return the next line of text from this input stream. |
500 * @return the next line of text from this input stream. |
501 * @exception IOException if an I/O error occurs. |
501 * @throws IOException if an I/O error occurs. |
502 * @see java.io.BufferedReader#readLine() |
502 * @see java.io.BufferedReader#readLine() |
503 * @see java.io.FilterInputStream#in |
503 * @see java.io.FilterInputStream#in |
504 */ |
504 */ |
505 @Deprecated |
505 @Deprecated |
506 public final String readLine() throws IOException { |
506 public final String readLine() throws IOException { |
554 * Bytes |
554 * Bytes |
555 * for this operation are read from the contained |
555 * for this operation are read from the contained |
556 * input stream. |
556 * input stream. |
557 * |
557 * |
558 * @return a Unicode string. |
558 * @return a Unicode string. |
559 * @exception EOFException if this input stream reaches the end before |
559 * @throws EOFException if this input stream reaches the end before |
560 * reading all the bytes. |
560 * reading all the bytes. |
561 * @exception IOException the stream has been closed and the contained |
561 * @throws IOException the stream has been closed and the contained |
562 * input stream does not support reading after close, or |
562 * input stream does not support reading after close, or |
563 * another I/O error occurs. |
563 * another I/O error occurs. |
564 * @exception UTFDataFormatException if the bytes do not represent a valid |
564 * @throws UTFDataFormatException if the bytes do not represent a valid |
565 * modified UTF-8 encoding of a string. |
565 * modified UTF-8 encoding of a string. |
566 * @see java.io.DataInputStream#readUTF(java.io.DataInput) |
566 * @see java.io.DataInputStream#readUTF(java.io.DataInput) |
567 */ |
567 */ |
568 public final String readUTF() throws IOException { |
568 public final String readUTF() throws IOException { |
569 return readUTF(this); |
569 return readUTF(this); |
579 * are exactly the same as for the <code>readUTF</code> |
579 * are exactly the same as for the <code>readUTF</code> |
580 * method of <code>DataInput</code>. |
580 * method of <code>DataInput</code>. |
581 * |
581 * |
582 * @param in a data input stream. |
582 * @param in a data input stream. |
583 * @return a Unicode string. |
583 * @return a Unicode string. |
584 * @exception EOFException if the input stream reaches the end |
584 * @throws EOFException if the input stream reaches the end |
585 * before all the bytes. |
585 * before all the bytes. |
586 * @exception IOException the stream has been closed and the contained |
586 * @throws IOException the stream has been closed and the contained |
587 * input stream does not support reading after close, or |
587 * input stream does not support reading after close, or |
588 * another I/O error occurs. |
588 * another I/O error occurs. |
589 * @exception UTFDataFormatException if the bytes do not represent a |
589 * @throws UTFDataFormatException if the bytes do not represent a |
590 * valid modified UTF-8 encoding of a Unicode string. |
590 * valid modified UTF-8 encoding of a Unicode string. |
591 * @see java.io.DataInputStream#readUnsignedShort() |
591 * @see java.io.DataInputStream#readUnsignedShort() |
592 */ |
592 */ |
593 public static final String readUTF(DataInput in) throws IOException { |
593 public static final String readUTF(DataInput in) throws IOException { |
594 int utflen = in.readUnsignedShort(); |
594 int utflen = in.readUnsignedShort(); |