Skip to content

Commit b1b7097

Browse files
scrhartleyscrhartley
andauthored
IO simplification (#11)
* IO simplification * Avoid unnecessary wrapping with a reader --------- Co-authored-by: scrhartley <scrhartley@github.com>
1 parent 2f2da72 commit b1b7097

2 files changed

Lines changed: 8 additions & 15 deletions

File tree

core/src/main/java/starfederation/datastar/utils/SignalReader.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import com.fasterxml.jackson.databind.ObjectMapper;
55
import starfederation.datastar.adapters.request.RequestAdapter;
66

7-
import java.io.BufferedReader;
87
import java.io.IOException;
8+
import java.io.Reader;
9+
import java.io.StringWriter;
10+
import java.io.Writer;
911
import java.util.Map;
1012
import java.util.Objects;
1113
import java.util.concurrent.ConcurrentMap;
@@ -37,15 +39,10 @@ public static void readSignals(RequestAdapter requestAdapter, ConcurrentMap<Stri
3739
}
3840
} else {
3941
// Handle other methods by reading the request body
40-
StringBuilder requestBody = new StringBuilder();
41-
try (BufferedReader reader = requestAdapter.getReader()) {
42-
String line;
43-
while ((line = reader.readLine()) != null) {
44-
requestBody.append(line);
45-
}
42+
try (Reader reader = requestAdapter.getReader(); Writer writer = new StringWriter()) {
43+
reader.transferTo(writer);
44+
data = writer.toString();
4645
}
47-
48-
data = requestBody.toString();
4946
if (data.isEmpty()) {
5047
throw new IllegalArgumentException("Request body cannot be empty.");
5148
}

examples/hello-world/src/main/java/org/example/servlets/HtmlServlet.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,8 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IO
2121

2222
resp.setContentType("text/html;charset=UTF-8");
2323

24-
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
25-
PrintWriter writer = resp.getWriter()) {
26-
String line;
27-
while ((line = reader.readLine()) != null) {
28-
writer.println(line);
29-
}
24+
try (inputStream; OutputStream output = resp.getOutputStream()) {
25+
inputStream.transferTo(output);
3026
}
3127
}
3228
}

0 commit comments

Comments
 (0)