#2450 add outputCallback
This commit is contained in:
parent
f7a0988200
commit
870c32cbee
1 changed files with 9 additions and 2 deletions
|
@ -21,6 +21,7 @@ import java.io.InputStreamReader;
|
|||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
@ -37,13 +38,16 @@ public class InputStreamThread extends Thread {
|
|||
|
||||
private final int bufferSize;
|
||||
|
||||
private final Consumer<String> outputCallback;
|
||||
|
||||
public InputStreamThread(final InputStream is, final String charset) {
|
||||
this(is, charset, MAX_BUFFER_SIZE);
|
||||
this(is, charset, MAX_BUFFER_SIZE, null);
|
||||
}
|
||||
|
||||
public InputStreamThread(final InputStream is, final String charset, final int bufferSize) {
|
||||
public InputStreamThread(final InputStream is, final String charset, final int bufferSize, final Consumer<String> outputCallback) {
|
||||
super("InputStreamThread");
|
||||
this.bufferSize = bufferSize;
|
||||
this.outputCallback = outputCallback;
|
||||
|
||||
try {
|
||||
br = new BufferedReader(new InputStreamReader(is, charset));
|
||||
|
@ -65,6 +69,9 @@ public class InputStreamThread extends Thread {
|
|||
logger.debug(line);
|
||||
}
|
||||
list.add(line);
|
||||
if (outputCallback != null) {
|
||||
outputCallback.accept(line);
|
||||
}
|
||||
if (list.size() > bufferSize) {
|
||||
list.remove(0);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue