BAEL-6398: Java PrintStream to String (#13998)
This commit is contained in:
parent
3fce001db6
commit
389a106697
@ -0,0 +1,68 @@
|
|||||||
|
package com.baeldung.printstreamtostring;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class PrintStreamToStringUtil {
|
||||||
|
|
||||||
|
public static String usingByteArrayOutputStreamClass(String input) throws IOException {
|
||||||
|
if (input == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String output;
|
||||||
|
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); PrintStream printStream = new PrintStream(outputStream)) {
|
||||||
|
printStream.print(input);
|
||||||
|
|
||||||
|
output = outputStream.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String usingApacheCommonsIO(String input) {
|
||||||
|
if (input == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
org.apache.commons.io.output.ByteArrayOutputStream outputStream = new org.apache.commons.io.output.ByteArrayOutputStream();
|
||||||
|
try (PrintStream printStream = new PrintStream(outputStream)) {
|
||||||
|
printStream.print(input);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new String(outputStream.toByteArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String usingCustomOutputStream(String input) throws IOException {
|
||||||
|
if (input == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String output;
|
||||||
|
try (CustomOutputStream outputStream = new CustomOutputStream(); PrintStream printStream = new PrintStream(outputStream)) {
|
||||||
|
printStream.print(input);
|
||||||
|
|
||||||
|
output = outputStream.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class CustomOutputStream extends OutputStream {
|
||||||
|
|
||||||
|
private StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(int b) throws IOException {
|
||||||
|
this.stringBuilder.append((char) b);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.stringBuilder.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.baeldung.printstreamtostring;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertNull;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class PrintStreamToStringUtilUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenUsingByteArrayOutputStreamClass_thenConvert() throws IOException {
|
||||||
|
assertEquals("test", PrintStreamToStringUtil.usingByteArrayOutputStreamClass("test"));
|
||||||
|
assertEquals("", PrintStreamToStringUtil.usingByteArrayOutputStreamClass(""));
|
||||||
|
assertNull(PrintStreamToStringUtil.usingByteArrayOutputStreamClass(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenCustomOutputStream_thenConvert() throws IOException {
|
||||||
|
assertEquals("world", PrintStreamToStringUtil.usingCustomOutputStream("world"));
|
||||||
|
assertEquals("", PrintStreamToStringUtil.usingCustomOutputStream(""));
|
||||||
|
assertNull(PrintStreamToStringUtil.usingCustomOutputStream(null));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenUsingApacheCommonsIO_thenConvert() {
|
||||||
|
assertEquals("hello", PrintStreamToStringUtil.usingApacheCommonsIO("hello"));
|
||||||
|
assertEquals("", PrintStreamToStringUtil.usingApacheCommonsIO(""));
|
||||||
|
assertNull(PrintStreamToStringUtil.usingApacheCommonsIO(null));
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user