Package uk.ac.starlink.util
Class IOUtils
java.lang.Object
uk.ac.starlink.util.IOUtils
Provides static methods which do miscellaneous input/output tasks.
- Author:
- Mark Taylor
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
copy
(InputStream in, OutputStream out) Copies all the bytes from a given input stream to a given output stream.static byte[]
Returns the platform's line separator as a byte array given the platform's default encoding.static String
getResourceContents
(Class<?> clazz, String name, Level level) Reads a static resource and returns the contents as a string.static void
println
(OutputStream out, String line) Writes a string to an output stream followed by a new line.static byte[]
readBytes
(InputStream in, int maxLeng) Reads a number of bytes from a stream.static void
skip
(InputStream strm, long nskip) Skips over a number of bytes in an InputStream This is implemented usingInputStream.skip(long)
but differs from it in that it guarantees to skip the bytes as specified, or to throw an exception.static void
Skips over a number of bytes in a DataInput.
-
Method Details
-
skipBytes
Skips over a number of bytes in a DataInput. This is implemented usingDataInput.skipBytes(int)
but differs from it in that it guarantees to skip the bytes as specified, or to throw an exception.- Parameters:
strm
- the stream to skip throughnskip
- the number of bytes to skip- Throws:
EOFException
- if the end of file is reachedIOException
- if an I/O error occursIllegalArgumentException
- if nskip<0
-
skip
Skips over a number of bytes in an InputStream This is implemented usingInputStream.skip(long)
but differs from it in that it guarantees to skip the bytes as specified, or to throw an exception.- Parameters:
strm
- the stream to skip throughnskip
- the number of bytes to skip- Throws:
EOFException
- if the end of file is reachedIOException
- if an I/O error occursIllegalArgumentException
- if nskip<0
-
getResourceContents
Reads a static resource and returns the contents as a string. The resource is read usingclazz.getResourceAsStream(name)
and is assumed to have ASCII content. The result is cached so that subsequent calls will return the same value. If it can't be read, "?" is returned, and a message is written through the logging system at the requested level. This is intended for short files such as version strings.- Parameters:
clazz
- class defining relative location of resourcename
- resource name relative toclazz
level
- logging level for failure; if null a default value is used (currently WARNING)- Returns:
- resource content string
- See Also:
-
println
Writes a string to an output stream followed by a new line. UnlikePrintStream.println()
, an IOException may be thrown.- Parameters:
out
- destination streamline
- line to write- Throws:
IOException
-
getLineSeparatorBytes
public static byte[] getLineSeparatorBytes()Returns the platform's line separator as a byte array given the platform's default encoding. May or may not be equal to {'\n'}.- Returns:
- line separator byte sequence
-
copy
Copies all the bytes from a given input stream to a given output stream. Neither stream is closed following the copy.- Parameters:
in
- sourceout
- destination- Throws:
IOException
-
readBytes
Reads a number of bytes from a stream. The specified number of bytes or the whole of the file is read, whichever is shorter.- Parameters:
in
- input streammaxLeng
- maximum number of bytes to read- Returns:
- buffer of bytes containing maxLeng bytes read from in, or fewer if the stream ended early
- Throws:
IOException
-