Package org.apache.camel.util
Class IOHelper
- java.lang.Object
-
- org.apache.camel.util.IOHelper
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
IOHelper.EncodingFileReader
Encoding-aware file reader.static class
IOHelper.EncodingFileWriter
Encoding-aware file writer.static class
IOHelper.EncodingInputStream
Encoding-aware input stream.
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_BUFFER_SIZE
static Supplier<Charset>
defaultCharset
static long
INITIAL_OFFSET
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static BufferedInputStream
buffered(InputStream in)
Wraps the passedin
into aBufferedInputStream
object and returns that.static BufferedOutputStream
buffered(OutputStream out)
Wraps the passedout
into aBufferedOutputStream
object and returns that.static BufferedReader
buffered(Reader reader)
Wraps the passedreader
into aBufferedReader
object and returns that.static BufferedWriter
buffered(Writer writer)
Wraps the passedwriter
into aBufferedWriter
object and returns that.static void
close(Closeable closeable)
Closes the given resource if it is available.static void
close(Closeable... closeables)
Closes the given resources if they are available.static void
close(Closeable closeable, String name)
Closes the given resource if it is available.static void
close(Closeable closeable, String name, org.slf4j.Logger log)
Closes the given resource if it is available, logging any closing exceptions to the given log.static void
close(Writer writer, FileOutputStream os, String name, org.slf4j.Logger log, boolean force)
Closes the given writer, logging any closing exceptions to the given log.static void
close(FileChannel channel, String name, org.slf4j.Logger log, boolean force)
Closes the given channel if it is available, logging any closing exceptions to the given log.static void
closeIterator(Object it)
static void
closeWithException(Closeable closeable)
Closes the given resource if it is available and don't catch the exceptionstatic int
copy(InputStream input, OutputStream output)
static int
copy(InputStream input, OutputStream output, int bufferSize)
static int
copy(InputStream input, OutputStream output, int bufferSize, boolean flushOnEachWrite)
static int
copy(InputStream input, OutputStream output, int bufferSize, boolean flushOnEachWrite, long maxSize)
static int
copy(Reader input, Writer output, int bufferSize)
static void
copyAndCloseInput(InputStream input, OutputStream output)
static void
copyAndCloseInput(InputStream input, OutputStream output, int bufferSize)
static void
force(FileOutputStream os, String name, org.slf4j.Logger log)
Forces any updates to a FileOutputStream be written to the storage device that contains it.static void
force(FileChannel channel, String name, org.slf4j.Logger log)
Forces any updates to this channel's file to be written to the storage device that contains it.static String
getCharsetNameFromContentType(String contentType)
Get the charset name from the content type stringstatic String
loadText(InputStream in)
Loads the entire stream into memory as a String and returns it.static String
lookupEnvironmentVariable(String key)
Lookup the OS environment variable in a safe manner by using upper case keys and underscore instead of dash.static String
normalizeCharset(String charset)
This method will take off the quotes and double quotes of the charsetstatic InputStream
toInputStream(File file, String charset)
Converts the givenFile
with the given charset toInputStream
with the JVM default charsetstatic BufferedReader
toReader(File file, String charset)
static BufferedReader
toReader(File file, Charset charset)
static String
toString(BufferedReader reader)
static String
toString(BufferedReader reader, long offset)
static String
toString(Reader reader)
static String
toString(Reader reader, long offset)
static BufferedWriter
toWriter(FileOutputStream os, String charset)
static BufferedWriter
toWriter(FileOutputStream os, Charset charset)
static void
transfer(ReadableByteChannel input, WritableByteChannel output)
static void
validateCharset(String charset)
static void
writeText(String text, File file)
Writes the text to the file.static void
writeText(String text, OutputStream os)
Writes the text to the stream.
-
-
-
Field Detail
-
defaultCharset
public static Supplier<Charset> defaultCharset
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZE
- See Also:
- Constant Field Values
-
INITIAL_OFFSET
public static final long INITIAL_OFFSET
- See Also:
- Constant Field Values
-
-
Method Detail
-
buffered
public static BufferedInputStream buffered(InputStream in)
Wraps the passedin
into aBufferedInputStream
object and returns that. If the passedin
is already an instance ofBufferedInputStream
returns the same passedin
reference as is (avoiding double wrapping).- Parameters:
in
- the wrapee to be used for the buffering support- Returns:
- the passed
in
decorated through aBufferedInputStream
object as wrapper
-
buffered
public static BufferedOutputStream buffered(OutputStream out)
Wraps the passedout
into aBufferedOutputStream
object and returns that. If the passedout
is already an instance ofBufferedOutputStream
returns the same passedout
reference as is (avoiding double wrapping).- Parameters:
out
- the wrapee to be used for the buffering support- Returns:
- the passed
out
decorated through aBufferedOutputStream
object as wrapper
-
buffered
public static BufferedReader buffered(Reader reader)
Wraps the passedreader
into aBufferedReader
object and returns that. If the passedreader
is already an instance ofBufferedReader
returns the same passedreader
reference as is (avoiding double wrapping).- Parameters:
reader
- the wrapee to be used for the buffering support- Returns:
- the passed
reader
decorated through aBufferedReader
object as wrapper
-
buffered
public static BufferedWriter buffered(Writer writer)
Wraps the passedwriter
into aBufferedWriter
object and returns that. If the passedwriter
is already an instance ofBufferedWriter
returns the same passedwriter
reference as is (avoiding double wrapping).- Parameters:
writer
- the writer to be used for the buffering support- Returns:
- the passed
writer
decorated through aBufferedWriter
object as wrapper
-
toString
public static String toString(Reader reader) throws IOException
- Throws:
IOException
-
toString
public static String toString(Reader reader, long offset) throws IOException
- Throws:
IOException
-
toString
public static String toString(BufferedReader reader) throws IOException
- Throws:
IOException
-
toString
public static String toString(BufferedReader reader, long offset) throws IOException
- Throws:
IOException
-
copy
public static int copy(InputStream input, OutputStream output) throws IOException
- Throws:
IOException
-
copy
public static int copy(InputStream input, OutputStream output, int bufferSize) throws IOException
- Throws:
IOException
-
copy
public static int copy(InputStream input, OutputStream output, int bufferSize, boolean flushOnEachWrite) throws IOException
- Throws:
IOException
-
copy
public static int copy(InputStream input, OutputStream output, int bufferSize, boolean flushOnEachWrite, long maxSize) throws IOException
- Throws:
IOException
-
copyAndCloseInput
public static void copyAndCloseInput(InputStream input, OutputStream output) throws IOException
- Throws:
IOException
-
copyAndCloseInput
public static void copyAndCloseInput(InputStream input, OutputStream output, int bufferSize) throws IOException
- Throws:
IOException
-
copy
public static int copy(Reader input, Writer output, int bufferSize) throws IOException
- Throws:
IOException
-
transfer
public static void transfer(ReadableByteChannel input, WritableByteChannel output) throws IOException
- Throws:
IOException
-
force
public static void force(FileChannel channel, String name, org.slf4j.Logger log)
Forces any updates to this channel's file to be written to the storage device that contains it.- Parameters:
channel
- the file channelname
- the name of the resourcelog
- the log to use when reporting warnings, will use this class's ownLogger
if log == null
-
force
public static void force(FileOutputStream os, String name, org.slf4j.Logger log)
Forces any updates to a FileOutputStream be written to the storage device that contains it.- Parameters:
os
- the file output streamname
- the name of the resourcelog
- the log to use when reporting warnings, will use this class's ownLogger
if log == null
-
close
public static void close(Writer writer, FileOutputStream os, String name, org.slf4j.Logger log, boolean force)
Closes the given writer, logging any closing exceptions to the given log. An associated FileOutputStream can optionally be forced to disk.- Parameters:
writer
- the writer to closeos
- an underlying FileOutputStream that will to be forced to disk according to the force parametername
- the name of the resourcelog
- the log to use when reporting warnings, will use this class's ownLogger
if log == nullforce
- forces the FileOutputStream to disk
-
close
public static void close(Closeable closeable, String name, org.slf4j.Logger log)
Closes the given resource if it is available, logging any closing exceptions to the given log.- Parameters:
closeable
- the object to closename
- the name of the resourcelog
- the log to use when reporting closure warnings, will use this class's ownLogger
if log == null
-
closeWithException
public static void closeWithException(Closeable closeable) throws IOException
Closes the given resource if it is available and don't catch the exception- Parameters:
closeable
- the object to close- Throws:
IOException
-
close
public static void close(FileChannel channel, String name, org.slf4j.Logger log, boolean force)
Closes the given channel if it is available, logging any closing exceptions to the given log. The file's channel can optionally be forced to disk.- Parameters:
channel
- the file channelname
- the name of the resourcelog
- the log to use when reporting warnings, will use this class's ownLogger
if log == nullforce
- forces the file channel to disk
-
close
public static void close(Closeable closeable, String name)
Closes the given resource if it is available.- Parameters:
closeable
- the object to closename
- the name of the resource
-
close
public static void close(Closeable closeable)
Closes the given resource if it is available.- Parameters:
closeable
- the object to close
-
close
public static void close(Closeable... closeables)
Closes the given resources if they are available.- Parameters:
closeables
- the objects to close
-
closeIterator
public static void closeIterator(Object it) throws IOException
- Throws:
IOException
-
validateCharset
public static void validateCharset(String charset) throws UnsupportedCharsetException
- Throws:
UnsupportedCharsetException
-
loadText
public static String loadText(InputStream in) throws IOException
Loads the entire stream into memory as a String and returns it. Notice: This implementation appends a \n as line terminator at the of the text. Warning, don't use for crazy big streams :)- Throws:
IOException
-
writeText
public static void writeText(String text, File file) throws IOException
Writes the text to the file.- Throws:
IOException
-
writeText
public static void writeText(String text, OutputStream os) throws IOException
Writes the text to the stream.- Throws:
IOException
-
getCharsetNameFromContentType
public static String getCharsetNameFromContentType(String contentType)
Get the charset name from the content type string- Parameters:
contentType
- the content type- Returns:
- the charset name, or UTF-8 if no found
-
normalizeCharset
public static String normalizeCharset(String charset)
This method will take off the quotes and double quotes of the charset
-
lookupEnvironmentVariable
public static String lookupEnvironmentVariable(String key)
Lookup the OS environment variable in a safe manner by using upper case keys and underscore instead of dash.
-
toInputStream
public static InputStream toInputStream(File file, String charset) throws IOException
Converts the givenFile
with the given charset toInputStream
with the JVM default charset- Parameters:
file
- the file to be convertedcharset
- the charset the file is read with- Returns:
- the input stream with the JVM default charset
- Throws:
IOException
-
toReader
public static BufferedReader toReader(File file, String charset) throws IOException
- Throws:
IOException
-
toReader
public static BufferedReader toReader(File file, Charset charset) throws IOException
- Throws:
IOException
-
toWriter
public static BufferedWriter toWriter(FileOutputStream os, String charset) throws IOException
- Throws:
IOException
-
toWriter
public static BufferedWriter toWriter(FileOutputStream os, Charset charset)
-
-