Package libcore.io
Class Streams
java.lang.Object
libcore.io.Streams
public final class Streams extends Object
-
Method Summary
Modifier and Type Method Description static intcopy(InputStream in, OutputStream out)Copies all of the bytes fromintoout.static StringreadAsciiLine(InputStream in)Returns the ASCII characters up to but not including the next "\r\n", or "\n".static byte[]readFully(InputStream in)Returns a byte[] containing the remainder of 'in', closing it when done.static voidreadFully(InputStream in, byte[] dst)Fills 'dst' with bytes from 'in', throwing EOFException if insufficient bytes are available.static voidreadFully(InputStream in, byte[] dst, int offset, int byteCount)Reads exactly 'byteCount' bytes from 'in' (into 'dst' at offset 'offset'), and throws EOFException if insufficient bytes are available.static StringreadFully(Reader reader)Returns the remainder of 'reader' as a string, closing it when done.static byte[]readFullyNoClose(InputStream in)Returns a byte[] containing the remainder of 'in'.static intreadSingleByte(InputStream in)Implements InputStream.read(int) in terms of InputStream.read(byte[], int, int).static voidskipAll(InputStream in)static longskipByReading(InputStream in, long byteCount)Callin.read()repeatedly until either the stream is exhausted orbyteCountbytes have been read.static voidwriteSingleByte(OutputStream out, int b)Implements OutputStream.write(int) in terms of OutputStream.write(byte[], int, int).
-
Method Details
-
readSingleByte
Implements InputStream.read(int) in terms of InputStream.read(byte[], int, int). InputStream assumes that you implement InputStream.read(int) and provides default implementations of the others, but often the opposite is more efficient.- Throws:
IOException
-
writeSingleByte
Implements OutputStream.write(int) in terms of OutputStream.write(byte[], int, int). OutputStream assumes that you implement OutputStream.write(int) and provides default implementations of the others, but often the opposite is more efficient.- Throws:
IOException
-
readFully
Fills 'dst' with bytes from 'in', throwing EOFException if insufficient bytes are available.- Throws:
IOException
-
readFully
public static void readFully(InputStream in, byte[] dst, int offset, int byteCount) throws IOExceptionReads exactly 'byteCount' bytes from 'in' (into 'dst' at offset 'offset'), and throws EOFException if insufficient bytes are available. Used to implementDataInputStream.readFully(byte[], int, int).- Throws:
IOException
-
readFully
Returns a byte[] containing the remainder of 'in', closing it when done.- Throws:
IOException
-
readFullyNoClose
Returns a byte[] containing the remainder of 'in'.- Throws:
IOException
-
readFully
Returns the remainder of 'reader' as a string, closing it when done.- Throws:
IOException
-
skipAll
- Throws:
IOException
-
skipByReading
Callin.read()repeatedly until either the stream is exhausted orbyteCountbytes have been read.This method reuses the skip buffer but is careful to never use it at the same time that another stream is using it. Otherwise streams that use the caller's buffer for consistency checks like CRC could be clobbered by other threads. A thread-local buffer is also insufficient because some streams may call other streams in their skip() method, also clobbering the buffer.
- Throws:
IOException
-
copy
Copies all of the bytes fromintoout. Neither stream is closed. Returns the total number of bytes transferred.- Throws:
IOException
-
readAsciiLine
Returns the ASCII characters up to but not including the next "\r\n", or "\n".- Throws:
EOFException- if the stream is exhausted before the next newline character.IOException
-