Package libcore.io
Class Streams
- java.lang.Object
-
- libcore.io.Streams
-
public final class Streams extends Object
-
-
Method Summary
All Methods Static Methods Concrete Methods 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)Skip at mostbyteCountbytes frominby calling read repeatedly until either the stream is exhausted or we read fewer bytes than we ask for.static voidwriteSingleByte(OutputStream out, int b)Implements OutputStream.write(int) in terms of OutputStream.write(byte[], int, int).
-
-
-
Method Detail
-
readSingleByte
public static int readSingleByte(InputStream in) throws IOException
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
public static void writeSingleByte(OutputStream out, int b) throws IOException
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
public static void readFully(InputStream in, byte[] dst) throws IOException
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 IOException
Reads 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
public static byte[] readFully(InputStream in) throws IOException
Returns a byte[] containing the remainder of 'in', closing it when done.- Throws:
IOException
-
readFullyNoClose
public static byte[] readFullyNoClose(InputStream in) throws IOException
Returns a byte[] containing the remainder of 'in'.- Throws:
IOException
-
readFully
public static String readFully(Reader reader) throws IOException
Returns the remainder of 'reader' as a string, closing it when done.- Throws:
IOException
-
skipAll
public static void skipAll(InputStream in) throws IOException
- Throws:
IOException
-
skipByReading
public static long skipByReading(InputStream in, long byteCount) throws IOException
Skip at mostbyteCountbytes frominby calling read repeatedly until either the stream is exhausted or we read fewer bytes than we ask for.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
public static int copy(InputStream in, OutputStream out) throws IOException
Copies all of the bytes fromintoout. Neither stream is closed. Returns the total number of bytes transferred.- Throws:
IOException
-
readAsciiLine
public static String readAsciiLine(InputStream in) throws IOException
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
-
-