Some cleanup and added functions to read asome length of a stream
This commit is contained in:
parent
8bbb651169
commit
577d09c1f7
1 changed files with 99 additions and 36 deletions
|
|
@ -38,23 +38,24 @@ public class IOUtil {
|
||||||
* Reads and returns all the content of a stream.
|
* Reads and returns all the content of a stream.
|
||||||
* The InputStream will not be closed
|
* The InputStream will not be closed
|
||||||
*
|
*
|
||||||
|
* @param stream the stream to read from
|
||||||
* @return a byte array with the stream contents
|
* @return a byte array with the stream contents
|
||||||
*/
|
*/
|
||||||
public static byte[] readContent(InputStream stream) throws IOException{
|
public static byte[] readContent(InputStream stream) throws IOException{
|
||||||
return readContent(stream, false);
|
return readContent(stream, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads and returns all the content of a stream.
|
* Reads and returns all the content of a stream.
|
||||||
*
|
*
|
||||||
* @param close true if the stream should be closed at the end
|
* @param stream the stream to read from
|
||||||
|
* @param close true if the stream should be closed at the end
|
||||||
* @return a byte array with the stream contents
|
* @return a byte array with the stream contents
|
||||||
*/
|
*/
|
||||||
public static byte[] readContent(InputStream stream, boolean close) throws IOException{
|
public static byte[] readContent(InputStream stream, boolean close) throws IOException{
|
||||||
DynamicByteArrayStream dyn_buff = new DynamicByteArrayStream();
|
DynamicByteArrayStream dyn_buff = new DynamicByteArrayStream();
|
||||||
byte[] buff = new byte[8192];
|
byte[] buff = new byte[8192];
|
||||||
int len;
|
int len;
|
||||||
while((len = stream.read(buff)) != -1){
|
while((len = stream.read(buff)) >= 0){
|
||||||
dyn_buff.append(buff, 0, len);
|
dyn_buff.append(buff, 0, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -62,29 +63,66 @@ public class IOUtil {
|
||||||
return dyn_buff.getBytes();
|
return dyn_buff.getBytes();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Reads and returns all the content of a stream as a String.
|
|
||||||
* The InputStream will not be closed
|
|
||||||
*
|
|
||||||
* @return a String with the content of the stream
|
|
||||||
*/
|
|
||||||
public static String readContentAsString(InputStream stream) throws IOException{
|
|
||||||
return readContentAsString(stream, false);
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* Reads and returns all the content of a stream as a String.
|
|
||||||
*
|
|
||||||
* @param close true if the stream should be closed at the end
|
|
||||||
* @return a String with the content of the stream
|
|
||||||
*/
|
|
||||||
public static String readContentAsString(InputStream stream, boolean close) throws IOException{
|
|
||||||
return readContentAsString(new InputStreamReader(stream), close);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads and returns all the content of a stream as a String.
|
* Reads and returns all the content of a stream as a String.
|
||||||
* The Reader will not be closed
|
* The stream will not be closed.
|
||||||
*
|
*
|
||||||
|
* @param stream the stream to read from
|
||||||
|
* @return a String with the content of the stream
|
||||||
|
*/
|
||||||
|
public static String readContentAsString(InputStream stream) throws IOException{
|
||||||
|
return readContentAsString(stream, -1,false);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Reads and returns all the content of a stream as a String.
|
||||||
|
*
|
||||||
|
* @param stream the stream to read from
|
||||||
|
* @param close true if the stream should be closed at the end
|
||||||
|
* @return a String with the content of the stream
|
||||||
|
*/
|
||||||
|
public static String readContentAsString(InputStream stream, boolean close) throws IOException{
|
||||||
|
return readContentAsString(stream, -1, close);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Reads and returns the given length from a stream and as String.
|
||||||
|
* The stream will not be closed.
|
||||||
|
*
|
||||||
|
* @param stream the stream to read from
|
||||||
|
* @param length the amount of characters to read from the stream
|
||||||
|
* @return a String with the content of the stream
|
||||||
|
*/
|
||||||
|
public static String readContentAsString(InputStream stream, int length) throws IOException{
|
||||||
|
return readContentAsString(stream, length, false);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Reads and returns the given length from a stream and as String.
|
||||||
|
* The stream will not be closed.
|
||||||
|
*
|
||||||
|
* @param stream the stream to read from
|
||||||
|
* @param length the amount of characters to read from the stream
|
||||||
|
* @return a String with the content of the stream
|
||||||
|
*/
|
||||||
|
public static String readContentAsString(InputStream stream, int length, boolean close) throws IOException{
|
||||||
|
StringBuilder str = (length > 0 ? new StringBuilder(length) : new StringBuilder());
|
||||||
|
|
||||||
|
int readLength = 0;
|
||||||
|
int c;
|
||||||
|
while((length < 0 || readLength < length) && (c = stream.read()) >= 0){
|
||||||
|
str.append((char) c);
|
||||||
|
readLength++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (close) stream.close();
|
||||||
|
return str.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reads and returns all the content of a stream as a String.
|
||||||
|
* The stream will not be closed.
|
||||||
|
*
|
||||||
|
* @param reader the stream to read from
|
||||||
* @return a String with the content of the stream
|
* @return a String with the content of the stream
|
||||||
*/
|
*/
|
||||||
public static String readContentAsString(Reader reader) throws IOException{
|
public static String readContentAsString(Reader reader) throws IOException{
|
||||||
|
|
@ -93,33 +131,52 @@ public class IOUtil {
|
||||||
/**
|
/**
|
||||||
* Reads and returns all the content of a stream as a String.
|
* Reads and returns all the content of a stream as a String.
|
||||||
*
|
*
|
||||||
* @param close true if the stream should be closed at the end
|
* @param reader the stream to read from
|
||||||
|
* @param close true if the stream should be closed at the end
|
||||||
* @return a String with the content of the stream
|
* @return a String with the content of the stream
|
||||||
*/
|
*/
|
||||||
public static String readContentAsString(Reader reader, boolean close) throws IOException{
|
public static String readContentAsString(Reader reader, boolean close) throws IOException{
|
||||||
StringBuilder str = new StringBuilder();
|
return readContentAsString(reader, -1, close);
|
||||||
BufferedReader in;
|
}
|
||||||
if(reader instanceof BufferedReader)
|
/**
|
||||||
in = (BufferedReader) reader;
|
* Reads and returns the given length from a stream and as String.
|
||||||
else
|
* The stream will not be closed.
|
||||||
in = new BufferedReader(reader);
|
*
|
||||||
|
* @param reader the stream to read from
|
||||||
|
* @param length the amount of characters to read from the stream
|
||||||
|
* @return a String with the content of the stream
|
||||||
|
*/
|
||||||
|
public static String readContentAsString(Reader reader, int length) throws IOException{
|
||||||
|
return readContentAsString(reader, length,false);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Reads and returns the given length from a stream and as String.
|
||||||
|
*
|
||||||
|
* @param reader the stream to read from
|
||||||
|
* @param length the amount of characters to read from the stream, set negative value to read until end of the stream
|
||||||
|
* @param close true if the stream should be closed at the end
|
||||||
|
* @return a String with the content of the stream
|
||||||
|
*/
|
||||||
|
public static String readContentAsString(Reader reader, int length, boolean close) throws IOException{
|
||||||
|
StringBuilder str = (length > 0 ? new StringBuilder(length) : new StringBuilder());
|
||||||
|
|
||||||
String line;
|
int readLength = 0;
|
||||||
while((line = in.readLine()) != null){
|
int c;
|
||||||
str.append(line).append("\n");
|
while((length < 0 || readLength < length) && (c = reader.read()) >= 0){
|
||||||
|
str.append((char) c);
|
||||||
|
readLength++;
|
||||||
}
|
}
|
||||||
if (str.length() > 0)
|
|
||||||
str.delete(str.length()-1, str.length()); // remove last new line
|
|
||||||
|
|
||||||
if (close) reader.close();
|
if (close) reader.close();
|
||||||
return str.toString();
|
return str.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads one line terminated by a new line or carriage return from a stream.
|
* Reads one line terminated by a new line or carriage return from a stream.
|
||||||
* Will only read ASCII based char streams.
|
* Will only read ASCII based char streams.
|
||||||
*
|
*
|
||||||
* @param in the stream to read from
|
* @param in the stream to read from
|
||||||
* @return a String that contains one line excluding line terminating
|
* @return a String that contains one line excluding line terminating
|
||||||
* characters, null if it is the end of the stream
|
* characters, null if it is the end of the stream
|
||||||
*/
|
*/
|
||||||
|
|
@ -138,7 +195,7 @@ public class IOUtil {
|
||||||
* Reads one line terminated by a new line or carriage return from a Reader.
|
* Reads one line terminated by a new line or carriage return from a Reader.
|
||||||
* Will only read ASCII based char streams.
|
* Will only read ASCII based char streams.
|
||||||
*
|
*
|
||||||
* @param in the Reader to read from
|
* @param in the Reader to read from
|
||||||
* @return a String that contains one line excluding line terminating
|
* @return a String that contains one line excluding line terminating
|
||||||
* characters, null if it is the end of the stream
|
* characters, null if it is the end of the stream
|
||||||
*/
|
*/
|
||||||
|
|
@ -158,6 +215,9 @@ public class IOUtil {
|
||||||
/**
|
/**
|
||||||
* Copies all data from one InputStream to another OutputStream.
|
* Copies all data from one InputStream to another OutputStream.
|
||||||
* The streams will not be closed after method has returned.
|
* The streams will not be closed after method has returned.
|
||||||
|
*
|
||||||
|
* @param in the source stream
|
||||||
|
* @param out the target stream
|
||||||
*/
|
*/
|
||||||
public static void copyStream(InputStream in, OutputStream out) throws IOException {
|
public static void copyStream(InputStream in, OutputStream out) throws IOException {
|
||||||
byte[] buff = new byte[8192]; // This is the default BufferedInputStream buffer size
|
byte[] buff = new byte[8192]; // This is the default BufferedInputStream buffer size
|
||||||
|
|
@ -170,6 +230,9 @@ public class IOUtil {
|
||||||
/**
|
/**
|
||||||
* Copies all data from one Reader to another Writer.
|
* Copies all data from one Reader to another Writer.
|
||||||
* The streams will not be closed after method has returned.
|
* The streams will not be closed after method has returned.
|
||||||
|
*
|
||||||
|
* @param in the source stream
|
||||||
|
* @param out the target stream
|
||||||
*/
|
*/
|
||||||
public static void copyStream(Reader in, Writer out) throws IOException {
|
public static void copyStream(Reader in, Writer out) throws IOException {
|
||||||
char[] buff = new char[8192]; // This is the default BufferedReader buffer size
|
char[] buff = new char[8192]; // This is the default BufferedReader buffer size
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue