Skip to content

Commit 2cb4c2d

Browse files
committed
add charset examples
1 parent a8d31ab commit 2cb4c2d

1 file changed

Lines changed: 41 additions & 1 deletion

File tree

core-java/src/test/java/org/baeldung/java/io/JavaReaderToXUnitTest.java

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.io.StringReader;
1010
import java.io.Writer;
1111
import java.nio.charset.Charset;
12+
import java.nio.charset.StandardCharsets;
1213

1314
import org.apache.commons.io.FileUtils;
1415
import org.apache.commons.io.IOUtils;
@@ -17,6 +18,7 @@
1718
import org.slf4j.Logger;
1819
import org.slf4j.LoggerFactory;
1920

21+
import com.google.common.base.Charsets;
2022
import com.google.common.io.CharSink;
2123
import com.google.common.io.CharSource;
2224
import com.google.common.io.CharStreams;
@@ -179,7 +181,45 @@ public void givenUsingGuava_whenConvertingReaderIntoInputStream_thenCorrect() th
179181
public void givenUsingCommonsIO_whenConvertingReaderIntoInputStream() throws IOException {
180182
final Reader initialReader = new StringReader("With Commons IO");
181183

182-
final InputStream targetStream = IOUtils.toInputStream(initialReader.toString());
184+
final InputStream targetStream = IOUtils.toInputStream(IOUtils.toString(initialReader));
185+
186+
initialReader.close();
187+
targetStream.close();
188+
}
189+
190+
// tests - Reader to InputStream with encoding
191+
192+
@Test
193+
public void givenUsingPlainJava_whenConvertingReaderIntoInputStreamWithCharset_thenCorrect() throws IOException {
194+
final Reader initialReader = new StringReader("With Java");
195+
196+
final char[] charBuffer = new char[8 * 1024];
197+
final StringBuilder builder = new StringBuilder();
198+
int numCharsRead;
199+
while ((numCharsRead = initialReader.read(charBuffer, 0, charBuffer.length)) != -1) {
200+
builder.append(charBuffer, 0, numCharsRead);
201+
}
202+
final InputStream targetStream = new ByteArrayInputStream(builder.toString().getBytes(StandardCharsets.UTF_8));
203+
204+
initialReader.close();
205+
targetStream.close();
206+
}
207+
208+
@Test
209+
public void givenUsingGuava_whenConvertingReaderIntoInputStreamWithCharset_thenCorrect() throws IOException {
210+
final Reader initialReader = new StringReader("With Guava");
211+
212+
final InputStream targetStream = new ByteArrayInputStream(CharStreams.toString(initialReader).getBytes(Charsets.UTF_8));
213+
214+
initialReader.close();
215+
targetStream.close();
216+
}
217+
218+
@Test
219+
public void givenUsingCommonsIO_whenConvertingReaderIntoInputStreamWithEncoding() throws IOException {
220+
final Reader initialReader = new StringReader("With Commons IO");
221+
222+
final InputStream targetStream = IOUtils.toInputStream(IOUtils.toString(initialReader), Charsets.UTF_8);
183223

184224
initialReader.close();
185225
targetStream.close();

0 commit comments

Comments
 (0)