Skip to content

Commit 9a9241e

Browse files
authored
Merge pull request #18359 from Bipinkumar27/JAVA-41593
JAVA-41593 core-java-io-5 module Splitted and article moved to core-j…
2 parents 38e3bb4 + 6cd1e5d commit 9a9241e

File tree

3 files changed

+66
-65
lines changed

3 files changed

+66
-65
lines changed

core-java-modules/core-java-io-2/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ This module contains articles about core Java input and output (IO)
1111
- [Create a Directory in Java](https://www.baeldung.com/java-create-directory)
1212
- [Java IO vs NIO](https://www.baeldung.com/java-io-vs-nio)
1313
- [Creating Temporary Directories in Java](https://www.baeldung.com/java-temp-directories)
14+
- [Convert an OutputStream to a Byte Array in Java](https://www.baeldung.com/java-outputstream-byte-array)
1415
- [[<-- Prev]](/core-java-modules/core-java-io)[[More -->]](/core-java-modules/core-java-io-3)
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,64 @@
1-
package com.baeldung.outputstreamtobytearray;
2-
3-
import org.apache.commons.io.FileUtils;
4-
import org.junit.jupiter.api.Test;
5-
import org.junit.jupiter.api.io.TempDir;
6-
7-
import java.io.*;
8-
import java.nio.charset.StandardCharsets;
9-
import java.nio.file.Path;
10-
11-
import static org.junit.jupiter.api.Assertions.assertEquals;
12-
13-
public class OutputStreamToByteArrayUnitTest {
14-
15-
@Test
16-
public void givenFileOutputStream_whenUsingFileUtilsToReadTheFile_thenReturnByteArray(@TempDir Path tempDir) throws IOException {
17-
String data = "Welcome to Baeldung!";
18-
String fileName = "file.txt";
19-
Path filePath = tempDir.resolve(fileName);
20-
21-
try (FileOutputStream outputStream = new FileOutputStream(filePath.toFile())) {
22-
outputStream.write(data.getBytes(StandardCharsets.UTF_8));
23-
}
24-
25-
byte[] writtenData = FileUtils.readFileToByteArray(filePath.toFile());
26-
String result = new String(writtenData, StandardCharsets.UTF_8);
27-
assertEquals(data, result);
28-
}
29-
30-
31-
@Test
32-
public void givenSystemOut_whenUsingDrainableOutputStream_thenReturnByteArray() throws IOException {
33-
String data = "Welcome to Baeldung!\n";
34-
35-
DrainableOutputStream drainableOutputStream = new DrainableOutputStream(System.out);
36-
try (drainableOutputStream) {
37-
drainableOutputStream.write(data.getBytes(StandardCharsets.UTF_8));
38-
}
39-
40-
byte[] writtenData = drainableOutputStream.toByteArray();
41-
assertEquals(data, new String(writtenData, StandardCharsets.UTF_8));
42-
}
43-
44-
public class DrainableOutputStream extends FilterOutputStream {
45-
private final ByteArrayOutputStream buffer;
46-
47-
public DrainableOutputStream(OutputStream out) {
48-
super(out);
49-
this.buffer = new ByteArrayOutputStream();
50-
}
51-
52-
@Override
53-
public void write(byte b[]) throws IOException {
54-
buffer.write(b);
55-
super.write(b);
56-
}
57-
58-
public byte[] toByteArray() {
59-
return buffer.toByteArray();
60-
}
61-
}
62-
}
1+
package com.baeldung.outputstreamtobytearray;
2+
3+
import org.apache.commons.io.FileUtils;
4+
import org.junit.jupiter.api.Test;
5+
import org.junit.jupiter.api.io.TempDir;
6+
7+
import java.io.*;
8+
import java.nio.charset.StandardCharsets;
9+
import java.nio.file.Path;
10+
11+
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
13+
public class OutputStreamToByteArrayUnitTest {
14+
15+
@Test
16+
public void givenFileOutputStream_whenUsingFileUtilsToReadTheFile_thenReturnByteArray(@TempDir Path tempDir) throws IOException {
17+
String data = "Welcome to Baeldung!";
18+
String fileName = "file.txt";
19+
Path filePath = tempDir.resolve(fileName);
20+
21+
try (FileOutputStream outputStream = new FileOutputStream(filePath.toFile())) {
22+
outputStream.write(data.getBytes(StandardCharsets.UTF_8));
23+
}
24+
25+
byte[] writtenData = FileUtils.readFileToByteArray(filePath.toFile());
26+
String result = new String(writtenData, StandardCharsets.UTF_8);
27+
assertEquals(data, result);
28+
}
29+
30+
31+
@Test
32+
public void givenSystemOut_whenUsingDrainableOutputStream_thenReturnByteArray() throws IOException {
33+
String data = "Welcome to Baeldung!\n";
34+
35+
DrainableOutputStream drainableOutputStream = new DrainableOutputStream(System.out);
36+
try {
37+
drainableOutputStream.write(data.getBytes(StandardCharsets.UTF_8));
38+
} finally {
39+
drainableOutputStream.close();
40+
}
41+
42+
byte[] writtenData = drainableOutputStream.toByteArray();
43+
assertEquals(data, new String(writtenData, StandardCharsets.UTF_8));
44+
}
45+
46+
public class DrainableOutputStream extends FilterOutputStream {
47+
private final ByteArrayOutputStream buffer;
48+
49+
public DrainableOutputStream(OutputStream out) {
50+
super(out);
51+
this.buffer = new ByteArrayOutputStream();
52+
}
53+
54+
@Override
55+
public void write(byte b[]) throws IOException {
56+
buffer.write(b);
57+
super.write(b);
58+
}
59+
60+
public byte[] toByteArray() {
61+
return buffer.toByteArray();
62+
}
63+
}
64+
}

core-java-modules/core-java-io-5/README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ This module contains articles about core Java input and output (IO)
99
- [How to Write Strings to OutputStream in Java](https://www.baeldung.com/java-write-string-outputstream)
1010
- [Read a File and Split It Into Multiple Files in Java](https://www.baeldung.com/java-read-file-split-into-several)
1111
- [Read and Write Files in Java Using Separate Threads](https://www.baeldung.com/java-read-write-files-different-threads)
12-
- [Convert an OutputStream to a Byte Array in Java](https://www.baeldung.com/java-outputstream-byte-array)
1312
- [Reading a .gz File Line by Line Using GZIPInputStream](https://www.baeldung.com/java-gzipinputstream-read-gz-file-line-by-line)
1413
- [Opening HTML File Using Java](https://www.baeldung.com/java-open-html-file)
1514
- [PrintWriter write() vs print() Method in Java](https://www.baeldung.com/java-printwriter-write-vs-print)
1615
- [Format Output in a Table Format Using System.out](https://www.baeldung.com/java-format-output-table-system-out)
17-
- [[<-- Prev]](/core-java-modules/core-java-io-4)
18-
16+
- [[<-- Prev]](/core-java-modules/core-java-io-4)

0 commit comments

Comments
 (0)