Skip to content

Commit b2811e8

Browse files
Replace construction of FileInputStream and FileOutputStream objects with Files NIO APIs. (#221)
1 parent 5a0096d commit b2811e8

22 files changed

Lines changed: 184 additions & 183 deletions

src/main/java/org/apache/commons/io/FileUtils.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ public static Checksum checksum(final File file, final Checksum checksum) throws
285285
requireExistsChecked(file, "file");
286286
requireFile(file, "file");
287287
Objects.requireNonNull(checksum, "checksum");
288-
try (InputStream inputStream = new CheckedInputStream(new FileInputStream(file), checksum)) {
288+
try (InputStream inputStream = new CheckedInputStream(Files.newInputStream(file.toPath()), checksum)) {
289289
IOUtils.consume(inputStream);
290290
}
291291
return checksum;
@@ -405,7 +405,7 @@ public static boolean contentEquals(final File file1, final File file2) throws I
405405
return true;
406406
}
407407

408-
try (InputStream input1 = new FileInputStream(file1); InputStream input2 = new FileInputStream(file2)) {
408+
try (InputStream input1 = Files.newInputStream(file1.toPath()); InputStream input2 = Files.newInputStream(file2.toPath())) {
409409
return IOUtils.contentEquals(input1, input2);
410410
}
411411
}
@@ -456,8 +456,8 @@ public static boolean contentEqualsIgnoreEOL(final File file1, final File file2,
456456
}
457457

458458
final Charset charset = Charsets.toCharset(charsetName);
459-
try (Reader input1 = new InputStreamReader(new FileInputStream(file1), charset);
460-
Reader input2 = new InputStreamReader(new FileInputStream(file2), charset)) {
459+
try (Reader input1 = new InputStreamReader(Files.newInputStream(file1.toPath()), charset);
460+
Reader input2 = new InputStreamReader(Files.newInputStream(file2.toPath()), charset)) {
461461
return IOUtils.contentEqualsIgnoreEOL(input1, input2);
462462
}
463463
}
@@ -868,7 +868,7 @@ public static void copyFile(final File srcFile, final File destFile, final CopyO
868868
* @since 2.1
869869
*/
870870
public static long copyFile(final File input, final OutputStream output) throws IOException {
871-
try (FileInputStream fis = new FileInputStream(input)) {
871+
try (InputStream fis = Files.newInputStream(input.toPath())) {
872872
return IOUtils.copyLarge(fis, output);
873873
}
874874
}

src/main/java/org/apache/commons/io/IOUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import java.io.Closeable;
2626
import java.io.EOFException;
2727
import java.io.File;
28-
import java.io.FileOutputStream;
2928
import java.io.IOException;
3029
import java.io.InputStream;
3130
import java.io.InputStreamReader;
@@ -44,6 +43,7 @@
4443
import java.nio.channels.ReadableByteChannel;
4544
import java.nio.channels.Selector;
4645
import java.nio.charset.Charset;
46+
import java.nio.file.Files;
4747
import java.util.ArrayList;
4848
import java.util.Collection;
4949
import java.util.List;
@@ -1230,7 +1230,7 @@ public static int copy(final Reader reader, final Writer writer) throws IOExcept
12301230
* @since 2.9.0
12311231
*/
12321232
public static long copy(final URL url, final File file) throws IOException {
1233-
try (FileOutputStream outputStream = new FileOutputStream(Objects.requireNonNull(file, "file"))) {
1233+
try (OutputStream outputStream = Files.newOutputStream(Objects.requireNonNull(file, "file").toPath())) {
12341234
return copy(url, outputStream);
12351235
}
12361236
}

src/main/java/org/apache/commons/io/input/XmlStreamReader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.io.BufferedInputStream;
2020
import java.io.BufferedReader;
2121
import java.io.File;
22-
import java.io.FileInputStream;
2322
import java.io.IOException;
2423
import java.io.InputStream;
2524
import java.io.InputStreamReader;
@@ -28,6 +27,7 @@
2827
import java.net.HttpURLConnection;
2928
import java.net.URL;
3029
import java.net.URLConnection;
30+
import java.nio.file.Files;
3131
import java.text.MessageFormat;
3232
import java.util.Locale;
3333
import java.util.Objects;
@@ -277,7 +277,7 @@ static boolean isTextXml(final String mime) {
277277
*/
278278
@SuppressWarnings("resource") // FileInputStream is managed through another reader in this instance.
279279
public XmlStreamReader(final File file) throws IOException {
280-
this(new FileInputStream(Objects.requireNonNull(file, "file")));
280+
this(Files.newInputStream(Objects.requireNonNull(file, "file").toPath()));
281281
}
282282

283283
/**

src/main/java/org/apache/commons/io/output/DeferredFileOutputStream.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package org.apache.commons.io.output;
1818

1919
import java.io.File;
20-
import java.io.FileInputStream;
21-
import java.io.FileOutputStream;
2220
import java.io.IOException;
2321
import java.io.InputStream;
2422
import java.io.OutputStream;
@@ -240,7 +238,7 @@ protected void thresholdReached() throws IOException {
240238
outputFile = File.createTempFile(prefix, suffix, directory);
241239
}
242240
FileUtils.forceMkdirParent(outputFile);
243-
final FileOutputStream fos = new FileOutputStream(outputFile);
241+
final OutputStream fos = Files.newOutputStream(outputFile.toPath());
244242
try {
245243
memoryOutputStream.writeTo(fos);
246244
} catch (final IOException e) {
@@ -297,7 +295,7 @@ public void writeTo(final OutputStream outputStream) throws IOException {
297295
if (isInMemory()) {
298296
memoryOutputStream.writeTo(outputStream);
299297
} else {
300-
try (FileInputStream fis = new FileInputStream(outputFile)) {
298+
try (InputStream fis = Files.newInputStream(outputFile.toPath())) {
301299
IOUtils.copy(fis, outputStream);
302300
}
303301
}

src/main/java/org/apache/commons/io/output/FileWriterWithEncoding.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@
1717
package org.apache.commons.io.output;
1818

1919
import java.io.File;
20-
import java.io.FileOutputStream;
2120
import java.io.IOException;
2221
import java.io.OutputStream;
2322
import java.io.OutputStreamWriter;
2423
import java.io.Writer;
2524
import java.nio.charset.Charset;
2625
import java.nio.charset.CharsetEncoder;
26+
import java.nio.file.Files;
27+
import java.nio.file.StandardOpenOption;
2728
import java.util.Objects;
2829

2930
import org.apache.commons.io.FileUtils;
@@ -227,7 +228,7 @@ private static Writer initWriter(final File file, final Object encoding, final b
227228
OutputStream stream = null;
228229
final boolean fileExistedAlready = file.exists();
229230
try {
230-
stream = new FileOutputStream(file, append);
231+
stream = Files.newOutputStream(file.toPath(), append ? StandardOpenOption.APPEND : StandardOpenOption.CREATE);
231232
if (encoding instanceof Charset) {
232233
return new OutputStreamWriter(stream, (Charset)encoding);
233234
}

src/test/java/org/apache/commons/io/FileCleaningTrackerTestCase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424

2525
import java.io.BufferedOutputStream;
2626
import java.io.File;
27-
import java.io.FileOutputStream;
2827
import java.io.IOException;
2928
import java.io.RandomAccessFile;
3029
import java.lang.ref.ReferenceQueue;
30+
import java.nio.file.Files;
3131
import java.util.ArrayList;
3232
import java.util.List;
3333

@@ -156,7 +156,7 @@ public void testFileCleanerDirectory_ForceStrategy() throws Exception {
156156
+ " as the parent directory does not exist");
157157
}
158158
try (final BufferedOutputStream output =
159-
new BufferedOutputStream(new FileOutputStream(testFile))) {
159+
new BufferedOutputStream(Files.newOutputStream(testFile.toPath()))) {
160160
TestUtils.generateTestData(output, 100);
161161
}
162162
assertTrue(testFile.exists());

src/test/java/org/apache/commons/io/FileDeleteStrategyTestCase.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323

2424
import java.io.BufferedOutputStream;
2525
import java.io.File;
26-
import java.io.FileOutputStream;
2726
import java.io.IOException;
27+
import java.nio.file.Files;
2828

2929
import org.apache.commons.io.test.TestUtils;
3030
import org.junit.jupiter.api.Test;
@@ -51,7 +51,7 @@ public void testDeleteNormal() throws Exception {
5151
+ " as the parent directory does not exist");
5252
}
5353
try (final BufferedOutputStream output =
54-
new BufferedOutputStream(new FileOutputStream(subFile))) {
54+
new BufferedOutputStream(Files.newOutputStream(subFile.toPath()))) {
5555
TestUtils.generateTestData(output, 16);
5656
}
5757

@@ -89,7 +89,7 @@ public void testDeleteQuietlyNormal() throws Exception {
8989
+ " as the parent directory does not exist");
9090
}
9191
try (final BufferedOutputStream output =
92-
new BufferedOutputStream(new FileOutputStream(subFile))) {
92+
new BufferedOutputStream(Files.newOutputStream(subFile.toPath()))) {
9393
TestUtils.generateTestData(output, 16);
9494
}
9595

@@ -122,7 +122,7 @@ public void testDeleteForce() throws Exception {
122122
+ " as the parent directory does not exist");
123123
}
124124
try (final BufferedOutputStream output =
125-
new BufferedOutputStream(new FileOutputStream(subFile))) {
125+
new BufferedOutputStream(Files.newOutputStream(subFile.toPath()))) {
126126
TestUtils.generateTestData(output, 16);
127127
}
128128

src/test/java/org/apache/commons/io/FileUtilsFileNewerTestCase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121

2222
import java.io.BufferedOutputStream;
2323
import java.io.File;
24-
import java.io.FileOutputStream;
2524
import java.io.IOException;
25+
import java.nio.file.Files;
2626
import java.util.Date;
2727

2828
import org.apache.commons.io.test.TestUtils;
@@ -54,15 +54,15 @@ public void setUp() throws Exception {
5454
+ " as the parent directory does not exist");
5555
}
5656
try (final BufferedOutputStream output1 =
57-
new BufferedOutputStream(new FileOutputStream(testFile1))) {
57+
new BufferedOutputStream(Files.newOutputStream(testFile1.toPath()))) {
5858
TestUtils.generateTestData(output1, FILE1_SIZE);
5959
}
6060
if (!testFile2.getParentFile().exists()) {
6161
throw new IOException("Cannot create file " + testFile2
6262
+ " as the parent directory does not exist");
6363
}
6464
try (final BufferedOutputStream output =
65-
new BufferedOutputStream(new FileOutputStream(testFile2))) {
65+
new BufferedOutputStream(Files.newOutputStream(testFile2.toPath()))) {
6666
TestUtils.generateTestData(output, FILE2_SIZE);
6767
}
6868
}

0 commit comments

Comments
 (0)