1 package emissary.util.io;
2
3 import jakarta.annotation.Nullable;
4
5
6
7
8
9
10
11 import java.io.BufferedReader;
12 import java.io.IOException;
13 import java.io.InputStream;
14 import java.io.InputStreamReader;
15 import java.io.PrintStream;
16
17 public class ReadOutput implements Runnable {
18
19 private final BufferedReader br;
20 @Nullable
21 private PrintStream ps = null;
22 private final String tag;
23 public boolean finished = false;
24
25 public ReadOutput(InputStream is, String str) {
26 br = new BufferedReader(new InputStreamReader(is));
27 tag = str;
28 }
29
30 public ReadOutput(InputStream is, String str, PrintStream outp) {
31 br = new BufferedReader(new InputStreamReader(is));
32 tag = str;
33 ps = outp;
34 }
35
36 @Override
37 public void run() {
38 String aLine = "";
39 finished = false;
40 try {
41 while ((aLine = br.readLine()) != null && !finished) {
42 if (ps != null) {
43 ps.println(tag + aLine);
44 }
45 }
46 br.close();
47 } catch (IOException ignored) {
48
49 }
50
51 }
52
53 public void finish() {
54 finished = true;
55 }
56 }