Change test to use NIO Api's
diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java
index 6dd654b..bd7f235 100644
--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java
+++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStream.java
@@ -65,7 +65,7 @@
         this.zipFile = zipFile;
         this.splitSize = splitSize;
 
-        this.outputStream = Files.newOutputStream((zipFile.toPath()));
+        this.outputStream = Files.newOutputStream(zipFile.toPath());
         // write the zip split signature 0x08074B50 to the zip file
         writeZipSplitSignature();
     }
diff --git a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java
index f894637..5f7f566 100644
--- a/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java
+++ b/src/main/java/org/apache/commons/compress/compressors/pack200/Pack200Utils.java
@@ -20,7 +20,6 @@
 package org.apache.commons.compress.compressors.pack200;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.file.Files;
@@ -141,7 +140,7 @@
                 packer.pack(jarFile, fos);
             }
             final Pack200.Unpacker unpacker = Pack200.newUnpacker();
-            try (JarOutputStream jos = new JarOutputStream(new FileOutputStream(to))) {
+            try (JarOutputStream jos = new JarOutputStream(Files.newOutputStream(to.toPath()))) {
                 unpacker.unpack(tempFile, jos);
             }
         } finally {
diff --git a/src/test/java/org/apache/commons/compress/AbstractTestCase.java b/src/test/java/org/apache/commons/compress/AbstractTestCase.java
index 2ba0a52..2fe3824 100644
--- a/src/test/java/org/apache/commons/compress/AbstractTestCase.java
+++ b/src/test/java/org/apache/commons/compress/AbstractTestCase.java
@@ -24,9 +24,7 @@
 import java.io.BufferedInputStream;
 import java.io.Closeable;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -175,7 +173,7 @@
             archive.deleteOnExit();
             archiveList = new ArrayList<>();
 
-            stream = new FileOutputStream(archive);
+            stream = Files.newOutputStream(archive.toPath());
             out = factory.createArchiveOutputStream(archivename, stream);
 
             final File file1 = getFile("test1.xml");
@@ -237,7 +235,7 @@
         try {
             archive = File.createTempFile("empty", "." + archivename);
             archive.deleteOnExit();
-            stream = new FileOutputStream(archive);
+            stream = Files.newOutputStream(archive.toPath());
             out = factory.createArchiveOutputStream(archivename, stream);
             out.finish();
         } finally {
@@ -264,7 +262,7 @@
         try {
             archive = File.createTempFile("empty", "." + archivename);
             archive.deleteOnExit();
-            stream = new FileOutputStream(archive);
+            stream = Files.newOutputStream(archive.toPath());
             out = factory.createArchiveOutputStream(archivename, stream);
             // Use short file name so does not cause problems for ar
             addArchiveEntry(out, "test1.xml", getFile("test1.xml"));
@@ -290,7 +288,7 @@
      */
     protected void checkArchiveContent(final File archive, final List<String> expected)
             throws Exception {
-        try (InputStream is = new FileInputStream(archive)) {
+        try (InputStream is = Files.newInputStream(archive.toPath())) {
             final BufferedInputStream buf = new BufferedInputStream(is);
             final ArchiveInputStream in = factory.createArchiveInputStream(buf);
             this.checkArchiveContent(in, expected);
@@ -333,7 +331,7 @@
                     outfile.mkdirs();
                 } else {
                     outfile.getParentFile().mkdirs();
-                    try (OutputStream out = new FileOutputStream(outfile)) {
+                    try (OutputStream out = Files.newOutputStream(outfile.toPath())) {
                         copied = IOUtils.copy(in, out);
                     }
                 }
@@ -384,7 +382,7 @@
         final File tmpDir = createTempDir();
         final File tmpFile = File.createTempFile("testfile", "", tmpDir);
         tmpFile.deleteOnExit();
-        try (FileOutputStream fos = new FileOutputStream(tmpFile)) {
+        try (OutputStream fos = Files.newOutputStream(tmpFile.toPath())) {
             fos.write(new byte[] { 'f', 'o', 'o' });
             return new File[] { tmpDir, tmpFile };
         }
diff --git a/src/test/java/org/apache/commons/compress/ArchiveReadTest.java b/src/test/java/org/apache/commons/compress/ArchiveReadTest.java
index 669a084..332ec09 100644
--- a/src/test/java/org/apache/commons/compress/ArchiveReadTest.java
+++ b/src/test/java/org/apache/commons/compress/ArchiveReadTest.java
@@ -23,8 +23,8 @@
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
 import java.net.URISyntaxException;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collection;
 
@@ -70,7 +70,7 @@
         assertTrue(ARCDIR.exists());
         final File listing = new File(ARCDIR, "files.txt");
         assertTrue("files.txt is readable", listing.canRead());
-        try (final BufferedReader br = new BufferedReader(new FileReader(listing))) {
+        try (final BufferedReader br = new BufferedReader(Files.newBufferedReader(listing.toPath()))) {
             String line;
             while ((line = br.readLine()) != null) {
                 if (!line.startsWith("#")) {
diff --git a/src/test/java/org/apache/commons/compress/ChainingTestCase.java b/src/test/java/org/apache/commons/compress/ChainingTestCase.java
index 10a10d4..879ad60 100644
--- a/src/test/java/org/apache/commons/compress/ChainingTestCase.java
+++ b/src/test/java/org/apache/commons/compress/ChainingTestCase.java
@@ -22,7 +22,7 @@
 import static org.junit.Assert.assertNotNull;
 
 import java.io.File;
-import java.io.FileInputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
@@ -37,7 +37,7 @@
     public void testTarGzip() throws Exception {
         final File file = getFile("bla.tgz");
         try (final TarArchiveInputStream is = new TarArchiveInputStream(
-            new GzipCompressorInputStream(new FileInputStream(file)))) {
+            new GzipCompressorInputStream(Files.newInputStream(file.toPath())))) {
             final TarArchiveEntry entry = (TarArchiveEntry) is.getNextEntry();
             assertNotNull(entry);
             assertEquals("test1.xml", entry.getName());
@@ -48,7 +48,7 @@
     public void testTarBzip2() throws Exception {
         final File file = getFile("bla.tar.bz2");
         try (final TarArchiveInputStream is = new TarArchiveInputStream(
-            new BZip2CompressorInputStream(new FileInputStream(file)))) {
+            new BZip2CompressorInputStream(Files.newInputStream(file.toPath())))) {
             final TarArchiveEntry entry = (TarArchiveEntry) is.getNextEntry();
             assertNotNull(entry);
             assertEquals("test1.xml", entry.getName());
diff --git a/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java b/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java
index 2351308..84c633a 100644
--- a/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java
+++ b/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java
@@ -24,8 +24,8 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.archivers.ArchiveException;
 import org.apache.commons.compress.archivers.ArchiveInputStream;
@@ -108,8 +108,7 @@
     private ArchiveInputStream getStreamFor(final String resource)
             throws ArchiveException, IOException {
         return factory.createArchiveInputStream(
-                   new BufferedInputStream(new FileInputStream(
-                       getFile(resource))));
+                   new BufferedInputStream(Files.newInputStream(getFile(resource).toPath())));
     }
 
     // Check that the empty archives created by the code are readable
@@ -144,7 +143,7 @@
         ArchiveInputStream ais = null;
         BufferedInputStream in = null;
         try {
-            in = new BufferedInputStream(new FileInputStream(ar));
+            in = new BufferedInputStream(Files.newInputStream(ar.toPath()));
             ais = factory.createArchiveInputStream(in);
         } catch (final ArchiveException ae) {
             fail("Should have recognized empty archive for "+type);
diff --git a/src/test/java/org/apache/commons/compress/IOMethodsTest.java b/src/test/java/org/apache/commons/compress/IOMethodsTest.java
index 08584b9..46dacb5 100644
--- a/src/test/java/org/apache/commons/compress/IOMethodsTest.java
+++ b/src/test/java/org/apache/commons/compress/IOMethodsTest.java
@@ -24,9 +24,9 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.ArchiveInputStream;
@@ -148,7 +148,7 @@
         final File file = createSingleEntryArchive(archiverName);
         file.deleteOnExit();
 
-        final InputStream is1 = new FileInputStream(file);
+        final InputStream is1 = Files.newInputStream(file.toPath());
         final ArchiveInputStream ais1 = factory.createArchiveInputStream(archiverName, is1);
         final ArchiveEntry nextEntry = ais1.getNextEntry();
         assertNotNull(nextEntry);
@@ -159,13 +159,13 @@
             assertTrue("Size should be > 0, found: "+size, size > 0);
         }
 
-        final InputStream is2 = new FileInputStream(file);
+        final InputStream is2 = Files.newInputStream(file.toPath());
         final ArchiveInputStream ais2 = factory.createArchiveInputStream(archiverName, is2);
         final ArchiveEntry nextEntry2 = ais2.getNextEntry();
         assertNotNull(nextEntry2);
         assertEquals("Expected same entry size", size, nextEntry2.getSize());
 
-        final InputStream is3 = new FileInputStream(file);
+        final InputStream is3 = Files.newInputStream(file.toPath());
         final ArchiveInputStream ais3 = factory.createArchiveInputStream(archiverName, is3);
         final ArchiveEntry nextEntry3 = ais3.getNextEntry();
         assertNotNull(nextEntry3);
diff --git a/src/test/java/org/apache/commons/compress/archivers/ArTestCase.java b/src/test/java/org/apache/commons/compress/archivers/ArTestCase.java
index 30fdc3e..755a9ad 100644
--- a/src/test/java/org/apache/commons/compress/archivers/ArTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/ArTestCase.java
@@ -26,10 +26,9 @@
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.ar.ArArchiveEntry;
@@ -48,14 +47,14 @@
         final File file1 = getFile("test1.xml");
         final File file2 = getFile("test2.xml");
 
-        final OutputStream out = new FileOutputStream(output);
+        final OutputStream out = Files.newOutputStream(output.toPath());
         final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("ar", out);
         os.putArchiveEntry(new ArArchiveEntry("test1.xml", file1.length()));
-        IOUtils.copy(new FileInputStream(file1), os);
+        IOUtils.copy(Files.newInputStream(file1.toPath()), os);
         os.closeArchiveEntry();
 
         os.putArchiveEntry(new ArArchiveEntry("test2.xml", file2.length()));
-        IOUtils.copy(new FileInputStream(file2), os);
+        IOUtils.copy(Files.newInputStream(file2.toPath()), os);
         os.closeArchiveEntry();
 
         os.close();
@@ -68,14 +67,14 @@
             final File file1 = getFile("test1.xml");
             final File file2 = getFile("test2.xml");
 
-            final OutputStream out = new FileOutputStream(output);
+            final OutputStream out = Files.newOutputStream(output.toPath());
             final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("ar", out);
             os.putArchiveEntry(new ArArchiveEntry("test1.xml", file1.length()));
-            IOUtils.copy(new FileInputStream(file1), os);
+            IOUtils.copy(Files.newInputStream(file1.toPath()), os);
             os.closeArchiveEntry();
 
             os.putArchiveEntry(new ArArchiveEntry("test2.xml", file2.length()));
-            IOUtils.copy(new FileInputStream(file2), os);
+            IOUtils.copy(Files.newInputStream(file2.toPath()), os);
             os.closeArchiveEntry();
             os.close();
             out.close();
@@ -83,13 +82,13 @@
 
         // UnArArchive Operation
         final File input = output;
-        try (final InputStream is = new FileInputStream(input);
+        try (final InputStream is = Files.newInputStream(input.toPath());
                 final ArchiveInputStream in = new ArchiveStreamFactory()
                         .createArchiveInputStream(new BufferedInputStream(is))) {
             final ArArchiveEntry entry = (ArArchiveEntry) in.getNextEntry();
 
             final File target = new File(dir, entry.getName());
-            try (final OutputStream out = new FileOutputStream(target)) {
+            try (final OutputStream out = Files.newOutputStream(target.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
@@ -104,14 +103,14 @@
         {
             // create
 
-            final OutputStream out = new FileOutputStream(output);
+            final OutputStream out = Files.newOutputStream(output.toPath());
             final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("ar", out);
             os.putArchiveEntry(new ArArchiveEntry("test1.xml", file1.length()));
-            IOUtils.copy(new FileInputStream(file1), os);
+            IOUtils.copy(Files.newInputStream(file1.toPath()), os);
             os.closeArchiveEntry();
 
             os.putArchiveEntry(new ArArchiveEntry("test2.xml", file2.length()));
-            IOUtils.copy(new FileInputStream(file2), os);
+            IOUtils.copy(Files.newInputStream(file2.toPath()), os);
             os.closeArchiveEntry();
             os.close();
             out.close();
@@ -130,8 +129,8 @@
         {
             // remove all but one file
 
-            final InputStream is = new FileInputStream(output);
-            final OutputStream os = new FileOutputStream(output2);
+            final InputStream is = Files.newInputStream(output.toPath());
+            final OutputStream os = Files.newOutputStream(output2.toPath());
             final ArchiveOutputStream aos = new ArchiveStreamFactory().createArchiveOutputStream("ar", os);
             final ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(new BufferedInputStream(is));
             while(true) {
@@ -167,7 +166,7 @@
         long sum = 0;
 
         {
-            final InputStream is = new FileInputStream(output2);
+            final InputStream is = Files.newInputStream(output2.toPath());
             final ArchiveInputStream ais = new ArchiveStreamFactory().createArchiveInputStream(new BufferedInputStream(is));
             while(true) {
                 final ArArchiveEntry entry = (ArArchiveEntry)ais.getNextEntry();
@@ -200,14 +199,14 @@
         try {
             archive = File.createTempFile("test.", ".ar", tmp[0]);
             archive.deleteOnExit();
-            aos = new ArArchiveOutputStream(new FileOutputStream(archive));
+            aos = new ArArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final long beforeArchiveWrite = tmp[0].lastModified();
             final ArArchiveEntry in = new ArArchiveEntry(tmp[0], "foo");
             aos.putArchiveEntry(in);
             aos.closeArchiveEntry();
             aos.close();
             aos = null;
-            ais = new ArArchiveInputStream(new FileInputStream(archive));
+            ais = new ArArchiveInputStream(Files.newInputStream(archive.toPath()));
             final ArArchiveEntry out = ais.getNextArEntry();
             ais.close();
             ais = null;
@@ -242,7 +241,7 @@
         try {
             archive = File.createTempFile("test.", ".ar", tmp[0]);
             archive.deleteOnExit();
-            aos = new ArArchiveOutputStream(new FileOutputStream(archive));
+            aos = new ArArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final long beforeArchiveWrite = tmp[0].lastModified();
             final ArArchiveEntry in = new ArArchiveEntry("foo", 0, 0, 0, 0,
                                                    tmp[1].lastModified() / 1000);
@@ -250,7 +249,7 @@
             aos.closeArchiveEntry();
             aos.close();
             aos = null;
-            ais = new ArArchiveInputStream(new FileInputStream(archive));
+            ais = new ArArchiveInputStream(Files.newInputStream(archive.toPath()));
             final ArArchiveEntry out = ais.getNextArEntry();
             ais.close();
             ais = null;
@@ -279,17 +278,17 @@
         File archive = null;
         ArArchiveOutputStream aos = null;
         ArArchiveInputStream ais = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         final File directory = tmp[0];
         final File file = tmp[1];
         try {
             archive = File.createTempFile("test.", ".ar", directory);
             archive.deleteOnExit();
-            aos = new ArArchiveOutputStream(new FileOutputStream(archive));
+            aos = new ArArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final ArArchiveEntry in = new ArArchiveEntry(file, "foo");
             aos.putArchiveEntry(in);
             final byte[] b = new byte[(int) file.length()];
-            fis = new FileInputStream(file);
+            fis = Files.newInputStream(file.toPath());
             while (fis.read(b) > 0) {
                 aos.write(b);
             }
@@ -298,7 +297,7 @@
             aos.closeArchiveEntry();
             aos.close();
             aos = null;
-            ais = new ArArchiveInputStream(new FileInputStream(archive));
+            ais = new ArArchiveInputStream(Files.newInputStream(archive.toPath()));
             final ArArchiveEntry out = ais.getNextArEntry();
             ais.close();
             ais = null;
@@ -330,17 +329,17 @@
         File archive = null;
         ArArchiveOutputStream aos = null;
         ArArchiveInputStream ais = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         final File directory = tmp[0];
         final File file = tmp[1];
         try {
             archive = File.createTempFile("test.", ".ar", directory);
             archive.deleteOnExit();
-            aos = new ArArchiveOutputStream(new FileOutputStream(archive));
+            aos = new ArArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final ArArchiveEntry in = new ArArchiveEntry(file.toPath(), "foo");
             aos.putArchiveEntry(in);
             final byte[] b = new byte[(int) file.length()];
-            fis = new FileInputStream(file);
+            fis = Files.newInputStream(file.toPath());
             while (fis.read(b) > 0) {
                 aos.write(b);
             }
@@ -349,7 +348,7 @@
             aos.closeArchiveEntry();
             aos.close();
             aos = null;
-            ais = new ArArchiveInputStream(new FileInputStream(archive));
+            ais = new ArArchiveInputStream(Files.newInputStream(archive.toPath()));
             final ArArchiveEntry out = ais.getNextArEntry();
             ais.close();
             ais = null;
@@ -381,17 +380,17 @@
         File archive = null;
         ArArchiveOutputStream aos = null;
         ArArchiveInputStream ais = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         try {
             archive = File.createTempFile("test.", ".ar", tmp[0]);
             archive.deleteOnExit();
-            aos = new ArArchiveOutputStream(new FileOutputStream(archive));
+            aos = new ArArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final ArArchiveEntry in = new ArArchiveEntry("foo", tmp[1].length(),
                                                    0, 0, 0,
                                                    tmp[1].lastModified() / 1000);
             aos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            fis = new FileInputStream(tmp[1]);
+            fis = Files.newInputStream(tmp[1].toPath());
             while (fis.read(b) > 0) {
                 aos.write(b);
             }
@@ -400,7 +399,7 @@
             aos.closeArchiveEntry();
             aos.close();
             aos = null;
-            ais = new ArArchiveInputStream(new FileInputStream(archive));
+            ais = new ArArchiveInputStream(Files.newInputStream(archive.toPath()));
             final ArArchiveEntry out = ais.getNextArEntry();
             ais.close();
             ais = null;
diff --git a/src/test/java/org/apache/commons/compress/archivers/ArchiveOutputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/ArchiveOutputStreamTest.java
index cff2961..d538e2b 100644
--- a/src/test/java/org/apache/commons/compress/archivers/ArchiveOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/ArchiveOutputStreamTest.java
@@ -22,10 +22,10 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.ar.ArArchiveEntry;
@@ -144,7 +144,7 @@
         ArchiveOutputStream aos1;
         aos1 = factory.createArchiveOutputStream(archiveType, out1);
         aos1.putArchiveEntry(aos1.createArchiveEntry(dummy, "dummy"));
-        try (InputStream is = new FileInputStream(dummy)) {
+        try (InputStream is = Files.newInputStream(dummy.toPath())) {
             IOUtils.copy(is, aos1);
         }
         aos1.closeArchiveEntry();
@@ -160,7 +160,7 @@
         }
 
         aos1.putArchiveEntry(aos1.createArchiveEntry(dummy, "dummy"));
-        try (InputStream is = new FileInputStream(dummy)) {
+        try (InputStream is = Files.newInputStream(dummy.toPath())) {
             IOUtils.copy(is, aos1);
         }
 
@@ -200,7 +200,7 @@
         throws Exception {
         final ArchiveOutputStream aos1 = factory.createArchiveOutputStream(archiveType, out1);
         aos1.putArchiveEntry(aos1.createArchiveEntry(dummy, "dummy"));
-        try (InputStream is = new FileInputStream(dummy)) {
+        try (InputStream is = Files.newInputStream(dummy.toPath())) {
             IOUtils.copy(is, aos1);
         }
         return aos1;
diff --git a/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java b/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java
index 822df9b..0a17979 100644
--- a/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/ArchiveStreamFactoryTest.java
@@ -27,10 +27,11 @@
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.FileInputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.Field;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.MockEvilInputStream;
 import org.apache.commons.compress.archivers.arj.ArjArchiveInputStream;
@@ -65,7 +66,7 @@
      */
     @Test
     public void aiffFilesAreNoTARs() throws Exception {
-        try (FileInputStream fis = new FileInputStream("src/test/resources/testAIFF.aif")) {
+        try (InputStream fis = Files.newInputStream(new File("src/test/resources/testAIFF.aif").toPath())) {
             try (InputStream is = new BufferedInputStream(fis)) {
                 ArchiveStreamFactory.DEFAULT.createArchiveInputStream(is);
                 fail("created an input stream for a non-archive");
@@ -77,7 +78,7 @@
 
     @Test
     public void testCOMPRESS209() throws Exception {
-        try (FileInputStream fis = new FileInputStream("src/test/resources/testCompress209.doc")) {
+        try (InputStream fis = Files.newInputStream(new File("src/test/resources/testCompress209.doc").toPath())) {
             try (InputStream bis = new BufferedInputStream(fis)) {
                 ArchiveStreamFactory.DEFAULT.createArchiveInputStream(bis);
                 fail("created an input stream for a non-archive");
@@ -108,7 +109,7 @@
      */
     @Test
     public void detectsAndThrowsFor7z() throws Exception {
-        try (FileInputStream fis = new FileInputStream("src/test/resources/bla.7z")) {
+        try (InputStream fis = Files.newInputStream(new File("src/test/resources/bla.7z").toPath())) {
             try (InputStream bis = new BufferedInputStream(fis)) {
                 ArchiveStreamFactory.DEFAULT.createArchiveInputStream(bis);
                 fail("Expected a StreamingNotSupportedException");
@@ -125,7 +126,7 @@
      */
     @Test
     public void skipsPK00Prefix() throws Exception {
-        try (FileInputStream fis = new FileInputStream("src/test/resources/COMPRESS-208.zip")) {
+        try (InputStream fis = Files.newInputStream(new File("src/test/resources/COMPRESS-208.zip").toPath())) {
             try (InputStream bis = new BufferedInputStream(fis)) {
                 try (ArchiveInputStream ais = ArchiveStreamFactory.DEFAULT.createArchiveInputStream(bis)) {
                     assertTrue(ais instanceof ZipArchiveInputStream);
@@ -214,14 +215,14 @@
         String dflt;
         dflt = UNKNOWN;
         try {
-            dflt = getField(new ArjArchiveInputStream(new FileInputStream(getFile("bla.arj"))), "charsetName");
+            dflt = getField(new ArjArchiveInputStream(Files.newInputStream(getFile("bla.arj").toPath())), "charsetName");
         } catch (final Exception e) {
             e.printStackTrace();
         }
         ARJ_DEFAULT = dflt;
         dflt = UNKNOWN;
         try {
-            dflt = getField(new DumpArchiveInputStream(new FileInputStream(getFile("bla.dump"))), "encoding");
+            dflt = getField(new DumpArchiveInputStream(Files.newInputStream(getFile("bla.dump").toPath())), "encoding");
         } catch (final Exception e) {
             e.printStackTrace();
         }
@@ -267,8 +268,7 @@
     }
 
     private String detect(final String resource) throws IOException, ArchiveException {
-        try(InputStream in = new BufferedInputStream(new FileInputStream(
-                getFile(resource)))) {
+        try(InputStream in = new BufferedInputStream(Files.newInputStream(getFile(resource).toPath()))) {
             return ArchiveStreamFactory.detect(in);
         }
     }
@@ -415,16 +415,14 @@
     private ArchiveInputStream getInputStreamFor(final String resource, final ArchiveStreamFactory factory)
             throws IOException, ArchiveException {
         return factory.createArchiveInputStream(
-                   new BufferedInputStream(new FileInputStream(
-                       getFile(resource))));
+                   new BufferedInputStream(Files.newInputStream(getFile(resource).toPath())));
     }
 
     private ArchiveInputStream getInputStreamFor(final String type, final String resource, final ArchiveStreamFactory factory)
             throws IOException, ArchiveException {
         return factory.createArchiveInputStream(
                    type,
-                   new BufferedInputStream(new FileInputStream(
-                       getFile(resource))));
+                   new BufferedInputStream(Files.newInputStream(getFile(resource).toPath())));
     }
 
     private ArchiveOutputStream getOutputStreamFor(final String type, final ArchiveStreamFactory factory)
diff --git a/src/test/java/org/apache/commons/compress/archivers/CpioTestCase.java b/src/test/java/org/apache/commons/compress/archivers/CpioTestCase.java
index 22134da..c61c71f 100644
--- a/src/test/java/org/apache/commons/compress/archivers/CpioTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/CpioTestCase.java
@@ -24,10 +24,9 @@
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -48,14 +47,14 @@
         final File file1 = getFile("test1.xml");
         final File file2 = getFile("test2.xml");
 
-        final OutputStream out = new FileOutputStream(output);
+        final OutputStream out = Files.newOutputStream(output.toPath());
         final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("cpio", out);
         os.putArchiveEntry(new CpioArchiveEntry("test1.xml", file1.length()));
-        IOUtils.copy(new FileInputStream(file1), os);
+        IOUtils.copy(Files.newInputStream(file1.toPath()), os);
         os.closeArchiveEntry();
 
         os.putArchiveEntry(new CpioArchiveEntry("test2.xml", file2.length()));
-        IOUtils.copy(new FileInputStream(file2), os);
+        IOUtils.copy(Files.newInputStream(file2.toPath()), os);
         os.closeArchiveEntry();
 
         os.close();
@@ -71,18 +70,18 @@
         final long file2Length = file2.length();
 
         {
-            final OutputStream out = new FileOutputStream(output);
+            final OutputStream out = Files.newOutputStream(output.toPath());
             final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("cpio", out);
             CpioArchiveEntry entry = new CpioArchiveEntry("test1.xml", file1Length);
             entry.setMode(CpioConstants.C_ISREG);
             os.putArchiveEntry(entry);
-            IOUtils.copy(new FileInputStream(file1), os);
+            IOUtils.copy(Files.newInputStream(file1.toPath()), os);
             os.closeArchiveEntry();
 
             entry = new CpioArchiveEntry("test2.xml", file2Length);
             entry.setMode(CpioConstants.C_ISREG);
             os.putArchiveEntry(entry);
-            IOUtils.copy(new FileInputStream(file2), os);
+            IOUtils.copy(Files.newInputStream(file2.toPath()), os);
             os.closeArchiveEntry();
             os.finish();
             os.close();
@@ -91,7 +90,7 @@
 
         // Unarchive Operation
         final File input = output;
-        final InputStream is = new FileInputStream(input);
+        final InputStream is = Files.newInputStream(input.toPath());
         final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("cpio", is);
 
 
@@ -99,7 +98,7 @@
         ArchiveEntry entry = null;
         while ((entry = in.getNextEntry()) != null) {
             final File cpioget = new File(dir, entry.getName());
-            final OutputStream out = new FileOutputStream(cpioget);
+            final OutputStream out = Files.newOutputStream(cpioget.toPath());
             IOUtils.copy(in, out);
             out.close();
             result.put(entry.getName(), cpioget);
@@ -125,14 +124,14 @@
         try {
             archive = File.createTempFile("test.", ".cpio", tmp[0]);
             archive.deleteOnExit();
-            tos = new CpioArchiveOutputStream(new FileOutputStream(archive));
+            tos = new CpioArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final long beforeArchiveWrite = tmp[0].lastModified();
             final CpioArchiveEntry in = new CpioArchiveEntry(tmp[0], "foo");
             tos.putArchiveEntry(in);
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new CpioArchiveInputStream(new FileInputStream(archive));
+            tis = new CpioArchiveInputStream(Files.newInputStream(archive.toPath()));
             final CpioArchiveEntry out = tis.getNextCPIOEntry();
             tis.close();
             tis = null;
@@ -165,7 +164,7 @@
         try {
             archive = File.createTempFile("test.", ".cpio", tmp[0]);
             archive.deleteOnExit();
-            tos = new CpioArchiveOutputStream(new FileOutputStream(archive));
+            tos = new CpioArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final long beforeArchiveWrite = tmp[0].lastModified();
             final CpioArchiveEntry in = new CpioArchiveEntry("foo/");
             in.setTime(beforeArchiveWrite / 1000);
@@ -174,7 +173,7 @@
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new CpioArchiveInputStream(new FileInputStream(archive));
+            tis = new CpioArchiveInputStream(Files.newInputStream(archive.toPath()));
             final CpioArchiveEntry out = tis.getNextCPIOEntry();
             tis.close();
             tis = null;
@@ -203,15 +202,15 @@
         File archive = null;
         CpioArchiveOutputStream tos = null;
         CpioArchiveInputStream tis = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         try {
             archive = File.createTempFile("test.", ".cpio", tmp[0]);
             archive.deleteOnExit();
-            tos = new CpioArchiveOutputStream(new FileOutputStream(archive));
+            tos = new CpioArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final CpioArchiveEntry in = new CpioArchiveEntry(tmp[1], "foo");
             tos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            fis = new FileInputStream(tmp[1]);
+            fis = Files.newInputStream(tmp[1].toPath());
             while (fis.read(b) > 0) {
                 tos.write(b);
             }
@@ -220,7 +219,7 @@
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new CpioArchiveInputStream(new FileInputStream(archive));
+            tis = new CpioArchiveInputStream(Files.newInputStream(archive.toPath()));
             final CpioArchiveEntry out = tis.getNextCPIOEntry();
             tis.close();
             tis = null;
@@ -252,18 +251,18 @@
         File archive = null;
         CpioArchiveOutputStream tos = null;
         CpioArchiveInputStream tis = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         try {
             archive = File.createTempFile("test.", ".cpio", tmp[0]);
             archive.deleteOnExit();
-            tos = new CpioArchiveOutputStream(new FileOutputStream(archive));
+            tos = new CpioArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final CpioArchiveEntry in = new CpioArchiveEntry("foo");
             in.setTime(tmp[1].lastModified() / 1000);
             in.setSize(tmp[1].length());
             in.setMode(CpioConstants.C_ISREG);
             tos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            fis = new FileInputStream(tmp[1]);
+            fis = Files.newInputStream(tmp[1].toPath());
             while (fis.read(b) > 0) {
                 tos.write(b);
             }
@@ -272,7 +271,7 @@
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new CpioArchiveInputStream(new FileInputStream(archive));
+            tis = new CpioArchiveInputStream(Files.newInputStream(archive.toPath()));
             final CpioArchiveEntry out = tis.getNextCPIOEntry();
             tis.close();
             tis = null;
diff --git a/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java b/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java
index 4812a52..2f3b458 100644
--- a/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/DumpTestCase.java
@@ -22,10 +22,9 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.ArrayList;
 
 import org.apache.commons.compress.AbstractTestCase;
@@ -46,7 +45,7 @@
     }
 
     private void unarchiveAll(final File input) throws Exception {
-        final InputStream is = new FileInputStream(input);
+        final InputStream is = Files.newInputStream(input.toPath());
         ArchiveInputStream in = null;
         OutputStream out = null;
         try {
@@ -62,7 +61,7 @@
                     entry = in.getNextEntry();
                     continue;
                 }
-                out = new FileOutputStream(archiveEntry);
+                out = Files.newOutputStream(archiveEntry.toPath());
                 IOUtils.copy(in, out);
                 out.close();
                 out = null;
@@ -90,7 +89,7 @@
     }
 
     private void archiveDetection(final File f) throws Exception {
-        try (InputStream is = new FileInputStream(f)) {
+        try (InputStream is = Files.newInputStream(f.toPath())) {
             assertEquals(DumpArchiveInputStream.class,
                 ArchiveStreamFactory.DEFAULT
                             .createArchiveInputStream(new BufferedInputStream(is))
@@ -114,7 +113,7 @@
         expected.add("lost+found/");
         expected.add("test1.xml");
         expected.add("test2.xml");
-        try (InputStream is = new FileInputStream(f)) {
+        try (InputStream is = Files.newInputStream(f.toPath())) {
             checkArchiveContent(new DumpArchiveInputStream(is),
                     expected);
         }
diff --git a/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java b/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java
index 6847977..2cb45a0 100644
--- a/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/JarTestCase.java
@@ -19,10 +19,9 @@
 package org.apache.commons.compress.archivers;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
@@ -38,16 +37,16 @@
         final File file1 = getFile("test1.xml");
         final File file2 = getFile("test2.xml");
 
-        final OutputStream out = new FileOutputStream(output);
+        final OutputStream out = Files.newOutputStream(output.toPath());
 
         final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("jar", out);
 
         os.putArchiveEntry(new ZipArchiveEntry("testdata/test1.xml"));
-        IOUtils.copy(new FileInputStream(file1), os);
+        IOUtils.copy(Files.newInputStream(file1.toPath()), os);
         os.closeArchiveEntry();
 
         os.putArchiveEntry(new ZipArchiveEntry("testdata/test2.xml"));
-        IOUtils.copy(new FileInputStream(file2), os);
+        IOUtils.copy(Files.newInputStream(file2.toPath()), os);
         os.closeArchiveEntry();
 
         os.close();
@@ -57,27 +56,27 @@
     @Test
     public void testJarUnarchive() throws Exception {
         final File input = getFile("bla.jar");
-        final InputStream is = new FileInputStream(input);
+        final InputStream is = Files.newInputStream(input.toPath());
         final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("jar", is);
 
         ZipArchiveEntry entry = (ZipArchiveEntry)in.getNextEntry();
         File o = new File(dir, entry.getName());
         o.getParentFile().mkdirs();
-        OutputStream out = new FileOutputStream(o);
+        OutputStream out = Files.newOutputStream(o.toPath());
         IOUtils.copy(in, out);
         out.close();
 
         entry = (ZipArchiveEntry)in.getNextEntry();
         o = new File(dir, entry.getName());
         o.getParentFile().mkdirs();
-        out = new FileOutputStream(o);
+        out = Files.newOutputStream(o.toPath());
         IOUtils.copy(in, out);
         out.close();
 
         entry = (ZipArchiveEntry)in.getNextEntry();
         o = new File(dir, entry.getName());
         o.getParentFile().mkdirs();
-        out = new FileOutputStream(o);
+        out = Files.newOutputStream(o.toPath());
         IOUtils.copy(in, out);
         out.close();
 
@@ -88,7 +87,7 @@
     @Test
     public void testJarUnarchiveAll() throws Exception {
         final File input = getFile("bla.jar");
-        final InputStream is = new FileInputStream(input);
+        final InputStream is = Files.newInputStream(input.toPath());
         final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("jar", is);
 
         ArchiveEntry entry = in.getNextEntry();
@@ -100,7 +99,7 @@
                 entry = in.getNextEntry();
                 continue;
             }
-            final OutputStream out = new FileOutputStream(archiveEntry);
+            final OutputStream out = Files.newOutputStream(archiveEntry.toPath());
             IOUtils.copy(in, out);
             out.close();
             entry = in.getNextEntry();
diff --git a/src/test/java/org/apache/commons/compress/archivers/LongPathTest.java b/src/test/java/org/apache/commons/compress/archivers/LongPathTest.java
index 384cd91..49d73d1 100644
--- a/src/test/java/org/apache/commons/compress/archivers/LongPathTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/LongPathTest.java
@@ -24,9 +24,8 @@
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
 import java.net.URISyntaxException;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collection;
 
@@ -77,7 +76,7 @@
         assertTrue(ARCDIR.exists());
         final File listing= new File(ARCDIR,"files.txt");
         assertTrue("files.txt is readable",listing.canRead());
-        final BufferedReader br = new BufferedReader(new FileReader(listing));
+        final BufferedReader br = new BufferedReader(Files.newBufferedReader(listing.toPath()));
         String line;
         while ((line=br.readLine())!=null){
             if (!line.startsWith("#")){
@@ -118,7 +117,7 @@
             expected.add("META-INF/");
             expected.add("META-INF/MANIFEST.MF");
         }
-        final ArchiveInputStream ais = factory.createArchiveInputStream(new BufferedInputStream(new FileInputStream(file)));
+        final ArchiveInputStream ais = factory.createArchiveInputStream(new BufferedInputStream(Files.newInputStream(file.toPath())));
         // check if expected type recognized
         if (name.endsWith(".tar")){
             assertTrue(ais instanceof TarArchiveInputStream);
diff --git a/src/test/java/org/apache/commons/compress/archivers/LongSymLinkTest.java b/src/test/java/org/apache/commons/compress/archivers/LongSymLinkTest.java
index bb5a55e..8faf456 100644
--- a/src/test/java/org/apache/commons/compress/archivers/LongSymLinkTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/LongSymLinkTest.java
@@ -24,9 +24,8 @@
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
 import java.net.URISyntaxException;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Collection;
 
@@ -75,7 +74,7 @@
         assertTrue(ARCDIR.exists());
         final File listing= new File(ARCDIR,"files.txt");
         assertTrue("files.txt is readable",listing.canRead());
-        final BufferedReader br = new BufferedReader(new FileReader(listing));
+        final BufferedReader br = new BufferedReader(Files.newBufferedReader(listing.toPath()));
         String line;
         while ((line=br.readLine())!=null){
             if (!line.startsWith("#")){
@@ -117,7 +116,7 @@
             expected.add("META-INF/");
             expected.add("META-INF/MANIFEST.MF");
         }
-        final ArchiveInputStream ais = factory.createArchiveInputStream(new BufferedInputStream(new FileInputStream(file)));
+        final ArchiveInputStream ais = factory.createArchiveInputStream(new BufferedInputStream(Files.newInputStream(file.toPath())));
         // check if expected type recognized
         if (name.endsWith(".tar")){
             assertTrue(ais instanceof TarArchiveInputStream);
diff --git a/src/test/java/org/apache/commons/compress/archivers/SevenZTestCase.java b/src/test/java/org/apache/commons/compress/archivers/SevenZTestCase.java
index 256cd94..6e5e461 100644
--- a/src/test/java/org/apache/commons/compress/archivers/SevenZTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/SevenZTestCase.java
@@ -20,8 +20,9 @@
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
 import java.security.NoSuchAlgorithmException;
 import javax.crypto.Cipher;
 
@@ -206,7 +207,7 @@
     }
 
     private void copy(final File src, final SevenZOutputFile dst) throws IOException {
-        try (FileInputStream fis = new FileInputStream(src)) {
+        try (InputStream fis = Files.newInputStream(src.toPath())) {
             final byte[] buffer = new byte[8*1024];
             int bytesRead;
             while ((bytesRead = fis.read(buffer)) >= 0) {
diff --git a/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java b/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java
index 2777863..e787796 100644
--- a/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java
@@ -21,12 +21,11 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.List;
 
@@ -53,7 +52,7 @@
     public void testTarArchiveCreation() throws Exception {
         final File output = new File(dir, "bla.tar");
         final File file1 = getFile("test1.xml");
-        final OutputStream out = new FileOutputStream(output);
+        final OutputStream out = Files.newOutputStream(output.toPath());
         final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("tar", out);
         final TarArchiveEntry entry = new TarArchiveEntry("testdata/test1.xml");
         entry.setModTime(0);
@@ -64,7 +63,7 @@
         entry.setGroupName("excalibur");
         entry.setMode(0100000);
         os.putArchiveEntry(entry);
-        IOUtils.copy(new FileInputStream(file1), os);
+        IOUtils.copy(Files.newInputStream(file1.toPath()), os);
         os.closeArchiveEntry();
         os.close();
     }
@@ -77,7 +76,7 @@
 
         final File output = new File(dir, "bla.tar");
         final File file1 = getFile("test1.xml");
-        final OutputStream out = new FileOutputStream(output);
+        final OutputStream out = Files.newOutputStream(output.toPath());
         final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("tar", out);
         final TarArchiveEntry entry = new TarArchiveEntry(name);
         entry.setModTime(0);
@@ -88,7 +87,7 @@
         entry.setGroupName("excalibur");
         entry.setMode(0100000);
         os.putArchiveEntry(entry);
-        final FileInputStream in = new FileInputStream(file1);
+        final InputStream in = Files.newInputStream(file1.toPath());
         IOUtils.copy(in, os);
         os.closeArchiveEntry();
         os.close();
@@ -100,7 +99,7 @@
         try {
             final String toLongName = "testdata/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567.xml";
             final File output2 = new File(dir, "bla.tar");
-            final OutputStream out2 = new FileOutputStream(output2);
+            final OutputStream out2 = Files.newOutputStream(output2.toPath());
             os2 = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("tar", out2);
             final TarArchiveEntry entry2 = new TarArchiveEntry(toLongName);
             entry2.setModTime(0);
@@ -111,7 +110,7 @@
             entry2.setGroupName("excalibur");
             entry2.setMode(0100000);
             os2.putArchiveEntry(entry);
-            IOUtils.copy(new FileInputStream(file1), os2);
+            IOUtils.copy(Files.newInputStream(file1.toPath()), os2);
             os2.closeArchiveEntry();
         } catch(final IOException e) {
             assertTrue(true);
@@ -125,10 +124,10 @@
     @Test
     public void testTarUnarchive() throws Exception {
         final File input = getFile("bla.tar");
-        try (final InputStream is = new FileInputStream(input);
+        try (final InputStream is = Files.newInputStream(input.toPath());
              final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("tar", is)) {
             final TarArchiveEntry entry = (TarArchiveEntry) in.getNextEntry();
-            try (final OutputStream out = new FileOutputStream(new File(dir, entry.getName()))) {
+            try (final OutputStream out = Files.newOutputStream(new File(dir, entry.getName()).toPath())) {
                 IOUtils.copy(in, out);
             }
         }
@@ -139,7 +138,7 @@
         final File file = getFile("bla.tar");
         try (final TarFile tarFile = new TarFile(file)) {
             final TarArchiveEntry entry = tarFile.getEntries().get(0);
-            try (final OutputStream out = new FileOutputStream(new File(dir, entry.getName()))) {
+            try (final OutputStream out = Files.newOutputStream(new File(dir, entry.getName()).toPath())) {
                 IOUtils.copy(tarFile.getInputStream(entry), out);
             }
         }
@@ -148,7 +147,7 @@
     @Test
     public void testCOMPRESS114() throws Exception {
         final File input = getFile("COMPRESS-114.tar");
-        try (final InputStream is = new FileInputStream(input);
+        try (final InputStream is = Files.newInputStream(input.toPath());
              final ArchiveInputStream in = new TarArchiveInputStream(is, CharsetNames.ISO_8859_1)) {
             TarArchiveEntry entry = (TarArchiveEntry) in.getNextEntry();
             assertEquals("3\u00b1\u00b1\u00b1F06\u00b1W2345\u00b1ZB\u00b1la\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1BLA", entry.getName());
@@ -178,14 +177,14 @@
         try {
             archive = File.createTempFile("test.", ".tar", tmp[0]);
             archive.deleteOnExit();
-            tos = new TarArchiveOutputStream(new FileOutputStream(archive));
+            tos = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final long beforeArchiveWrite = tmp[0].lastModified();
             final TarArchiveEntry in = new TarArchiveEntry(tmp[0], "foo");
             tos.putArchiveEntry(in);
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new TarArchiveInputStream(new FileInputStream(archive));
+            tis = new TarArchiveInputStream(Files.newInputStream(archive.toPath()));
             final TarArchiveEntry out = tis.getNextTarEntry();
             tis.close();
             tis = null;
@@ -215,7 +214,7 @@
         File archive = File.createTempFile("test.", ".tar", tmp[0]);
         archive.deleteOnExit();
 
-        try (final TarArchiveOutputStream tos = new TarArchiveOutputStream(new FileOutputStream(archive))) {
+        try (final TarArchiveOutputStream tos = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()))) {
             final long beforeArchiveWrite = tmp[0].lastModified();
             final TarArchiveEntry in = new TarArchiveEntry(tmp[0], "foo");
             tos.putArchiveEntry(in);
@@ -246,7 +245,7 @@
         try {
             archive = File.createTempFile("test.", ".tar", tmp[0]);
             archive.deleteOnExit();
-            tos = new TarArchiveOutputStream(new FileOutputStream(archive));
+            tos = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final long beforeArchiveWrite = tmp[0].lastModified();
             final TarArchiveEntry in = new TarArchiveEntry("foo/");
             in.setModTime(beforeArchiveWrite);
@@ -254,7 +253,7 @@
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new TarArchiveInputStream(new FileInputStream(archive));
+            tis = new TarArchiveInputStream(Files.newInputStream(archive.toPath()));
             final TarArchiveEntry out = tis.getNextTarEntry();
             tis.close();
             tis = null;
@@ -282,7 +281,7 @@
         final File[] tmp = createTempDirAndFile();
         File archive = File.createTempFile("test.", ".tar", tmp[0]);
         archive.deleteOnExit();
-        try (final TarArchiveOutputStream tos = new TarArchiveOutputStream(new FileOutputStream(archive))){
+        try (final TarArchiveOutputStream tos = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()))){
             final long beforeArchiveWrite = tmp[0].lastModified();
             final TarArchiveEntry in = new TarArchiveEntry("foo/");
             in.setModTime(beforeArchiveWrite);
@@ -310,15 +309,15 @@
         File archive = null;
         TarArchiveOutputStream tos = null;
         TarArchiveInputStream tis = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         try {
             archive = File.createTempFile("test.", ".tar", tmp[0]);
             archive.deleteOnExit();
-            tos = new TarArchiveOutputStream(new FileOutputStream(archive));
+            tos = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final TarArchiveEntry in = new TarArchiveEntry(tmp[1], "foo");
             tos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            fis = new FileInputStream(tmp[1]);
+            fis = Files.newInputStream(tmp[1].toPath());
             while (fis.read(b) > 0) {
                 tos.write(b);
             }
@@ -327,7 +326,7 @@
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new TarArchiveInputStream(new FileInputStream(archive));
+            tis = new TarArchiveInputStream(Files.newInputStream(archive.toPath()));
             final TarArchiveEntry out = tis.getNextTarEntry();
             tis.close();
             tis = null;
@@ -358,11 +357,11 @@
         final File[] tmp = createTempDirAndFile();
         File archive = File.createTempFile("test.", ".tar", tmp[0]);
         archive.deleteOnExit();
-        try (final TarArchiveOutputStream tos = new TarArchiveOutputStream(new FileOutputStream(archive))) {
+        try (final TarArchiveOutputStream tos = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()))) {
             final TarArchiveEntry in = new TarArchiveEntry(tmp[1], "foo");
             tos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            try (final FileInputStream fis = new FileInputStream(tmp[1])) {
+            try (final InputStream fis = Files.newInputStream(tmp[1].toPath())) {
                 while (fis.read(b) > 0) {
                     tos.write(b);
                 }
@@ -390,17 +389,17 @@
         File archive = null;
         TarArchiveOutputStream tos = null;
         TarArchiveInputStream tis = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         try {
             archive = File.createTempFile("test.", ".tar", tmp[0]);
             archive.deleteOnExit();
-            tos = new TarArchiveOutputStream(new FileOutputStream(archive));
+            tos = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()));
             final TarArchiveEntry in = new TarArchiveEntry("foo");
             in.setModTime(tmp[1].lastModified());
             in.setSize(tmp[1].length());
             tos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            fis = new FileInputStream(tmp[1]);
+            fis = Files.newInputStream(tmp[1].toPath());
             while (fis.read(b) > 0) {
                 tos.write(b);
             }
@@ -409,7 +408,7 @@
             tos.closeArchiveEntry();
             tos.close();
             tos = null;
-            tis = new TarArchiveInputStream(new FileInputStream(archive));
+            tis = new TarArchiveInputStream(Files.newInputStream(archive.toPath()));
             final TarArchiveEntry out = tis.getNextTarEntry();
             tis.close();
             tis = null;
@@ -440,13 +439,13 @@
         final File[] tmp = createTempDirAndFile();
         File archive = File.createTempFile("test.", ".tar", tmp[0]);
         archive.deleteOnExit();
-        try (final TarArchiveOutputStream tos  = new TarArchiveOutputStream(new FileOutputStream(archive))){
+        try (final TarArchiveOutputStream tos  = new TarArchiveOutputStream(Files.newOutputStream(archive.toPath()))){
             final TarArchiveEntry in = new TarArchiveEntry("foo");
             in.setModTime(tmp[1].lastModified());
             in.setSize(tmp[1].length());
             tos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            try (final FileInputStream fis = new FileInputStream(tmp[1])) {
+            try (final InputStream fis = Files.newInputStream(tmp[1].toPath())) {
                 while (fis.read(b) > 0) {
                     tos.write(b);
                 }
@@ -471,7 +470,7 @@
     @Test
     public void testCOMPRESS178() throws Exception {
         final File input = getFile("COMPRESS-178.tar");
-        final InputStream is = new FileInputStream(input);
+        final InputStream is = Files.newInputStream(input.toPath());
         final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("tar", is);
         try {
             in.getNextEntry();
@@ -498,7 +497,7 @@
     @Test
     public void testCOMPRESS178Lenient() throws Exception {
         final File input = getFile("COMPRESS-178.tar");
-        try (final InputStream is = new FileInputStream(input);
+        try (final InputStream is = Files.newInputStream(input.toPath());
              final ArchiveInputStream in = new TarArchiveInputStream(is, true)) {
             in.getNextEntry();
         }
@@ -515,7 +514,7 @@
     @Test
     public void testDirectoryRead() throws IOException {
         final File input = getFile("directory.tar");
-        try (final InputStream is = new FileInputStream(input);
+        try (final InputStream is = Files.newInputStream(input.toPath());
              final TarArchiveInputStream in = new TarArchiveInputStream(is)) {
             TarArchiveEntry directoryEntry = in.getNextTarEntry();
             assertEquals("directory/", directoryEntry.getName());
diff --git a/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java b/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java
index ccdb00d..1d92fbd 100644
--- a/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/ZipTestCase.java
@@ -28,14 +28,13 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.channels.Channels;
 import java.nio.channels.SeekableByteChannel;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -75,16 +74,16 @@
         final File file1 = getFile("test1.xml");
         final File file2 = getFile("test2.xml");
 
-        try (final OutputStream out = new FileOutputStream(output)) {
+        try (final OutputStream out = Files.newOutputStream(output.toPath())) {
             try (ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream("zip", out)) {
                 os.putArchiveEntry(new ZipArchiveEntry("testdata/test1.xml"));
-                try (final FileInputStream input = new FileInputStream(file1)) {
+                try (final InputStream input = Files.newInputStream(file1.toPath())) {
                     IOUtils.copy(input, os);
                 }
                 os.closeArchiveEntry();
 
                 os.putArchiveEntry(new ZipArchiveEntry("testdata/test2.xml"));
-                try (final FileInputStream input = new FileInputStream(file2)) {
+                try (final InputStream input = Files.newInputStream(file2.toPath())) {
                     IOUtils.copy(input, os);
                 }
                 os.closeArchiveEntry();
@@ -94,14 +93,14 @@
         // Unarchive the same
         final List<File> results = new ArrayList<>();
 
-        try (final InputStream fileInputStream = new FileInputStream(output)) {
+        try (final InputStream fileInputStream = Files.newInputStream(output.toPath())) {
             try (ArchiveInputStream archiveInputStream = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("zip",
                 fileInputStream)) {
                 ZipArchiveEntry entry = null;
                 while ((entry = (ZipArchiveEntry) archiveInputStream.getNextEntry()) != null) {
                     final File outfile = new File(resultDir.getCanonicalPath() + "/result/" + entry.getName());
                     outfile.getParentFile().mkdirs();
-                    try (OutputStream o = new FileOutputStream(outfile)) {
+                    try (OutputStream o = Files.newOutputStream(outfile.toPath())) {
                         IOUtils.copy(archiveInputStream, o);
                     }
                     results.add(outfile);
@@ -165,10 +164,10 @@
     @Test
     public void testZipUnarchive() throws Exception {
         final File input = getFile("bla.zip");
-        try (final InputStream is = new FileInputStream(input);
+        try (final InputStream is = Files.newInputStream(input.toPath());
                 final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("zip", is)) {
             final ZipArchiveEntry entry = (ZipArchiveEntry) in.getNextEntry();
-            try (final OutputStream out = new FileOutputStream(new File(dir, entry.getName()))) {
+            try (final OutputStream out = Files.newOutputStream(new File(dir, entry.getName()).toPath())) {
                 IOUtils.copy(in, out);
             }
         }
@@ -185,7 +184,7 @@
         final ArrayList<String> al = new ArrayList<>();
         al.add("test1.xml");
         al.add("test2.xml");
-        try (InputStream fis = new FileInputStream(input)) {
+        try (InputStream fis = Files.newInputStream(input.toPath())) {
             checkArchiveContent(new ZipArchiveInputStream(fis), al);
         }
     }
@@ -215,7 +214,7 @@
     @Test
     public void testSkipEntryWithUnsupportedCompressionMethod()
             throws IOException {
-        try (ZipArchiveInputStream zip = new ZipArchiveInputStream(new FileInputStream(getFile("moby.zip")))) {
+        try (ZipArchiveInputStream zip = new ZipArchiveInputStream(Files.newInputStream(getFile("moby.zip").toPath()))) {
             final ZipArchiveEntry entry = zip.getNextZipEntry();
             assertEquals("method", ZipMethod.TOKENIZATION.getCode(), entry.getMethod());
             assertEquals("README", entry.getName());
@@ -245,7 +244,7 @@
         final List<String> results = new ArrayList<>();
         final List<ZipException> expectedExceptions = new ArrayList<>();
 
-        try (final InputStream fis = new FileInputStream(input);
+        try (final InputStream fis = Files.newInputStream(input.toPath());
             ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("zip", fis)) {
 
             ZipArchiveEntry entry = null;
@@ -499,7 +498,7 @@
         File archive = null;
         ZipArchiveOutputStream zos = null;
         ZipFile zf = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         final File tmpDir = tmp[0];
         final File tmpFile = tmp[1];
         try {
@@ -509,7 +508,7 @@
             final ZipArchiveEntry in = new ZipArchiveEntry(tmpFile, "foo");
             zos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmpFile.length()];
-            fis = new FileInputStream(tmpFile);
+            fis = Files.newInputStream(tmpFile.toPath());
             while (fis.read(b) > 0) {
                 zos.write(b);
             }
@@ -547,7 +546,7 @@
         Path archivePath = null;
         ZipArchiveOutputStream zos = null;
         ZipFile zf = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         final File tmpDir = tmp[0];
         final File tmpFile = tmp[1];
         final Path tmpFilePath = tmpFile.toPath();
@@ -559,7 +558,7 @@
             final ZipArchiveEntry in = (ZipArchiveEntry) zos.createArchiveEntry(tmpFilePath, "foo");
             zos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmpFile.length()];
-            fis = new FileInputStream(tmpFile);
+            fis = Files.newInputStream(tmpFile.toPath());
             while (fis.read(b) > 0) {
                 zos.write(b);
             }
@@ -596,7 +595,7 @@
         File archive = null;
         ZipArchiveOutputStream zos = null;
         ZipFile zf = null;
-        FileInputStream fis = null;
+        InputStream fis = null;
         try {
             archive = File.createTempFile("test.", ".zip", tmp[0]);
             archive.deleteOnExit();
@@ -606,7 +605,7 @@
             in.setSize(tmp[1].length());
             zos.putArchiveEntry(in);
             final byte[] b = new byte[(int) tmp[1].length()];
-            fis = new FileInputStream(tmp[1]);
+            fis = Files.newInputStream(tmp[1].toPath());
             while (fis.read(b) > 0) {
                 zos.write(b);
             }
@@ -733,7 +732,7 @@
                 }
                 // compare all files one by one
                 final File fileToCompare = new File(entry.getName());
-                try (InputStream inputStreamToCompare = new FileInputStream(fileToCompare)) {
+                try (InputStream inputStreamToCompare = Files.newInputStream(fileToCompare.toPath())) {
                     assertArrayEquals(IOUtils.toByteArray(splitInputStream),
                         IOUtils.toByteArray(inputStreamToCompare));
                 }
@@ -751,7 +750,7 @@
         final Map<String,List<List<Long>>> actualStatistics = new HashMap<>();
 
         // stream access
-        try (final FileInputStream fis = new FileInputStream(input);
+        try (final InputStream fis = Files.newInputStream(input.toPath());
             final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT.createArchiveInputStream("zip", fis)) {
             for (ArchiveEntry entry; (entry = in.getNextEntry()) != null; ) {
                 readStream(in, entry, actualStatistics);
@@ -823,7 +822,7 @@
                 outputFile = new File(dir, zipEntry.getName());
 
                 try (InputStream inputStream = zipFile.getInputStream(zipEntry);
-                    OutputStream outputStream = new FileOutputStream(outputFile)) {
+                    OutputStream outputStream = Files.newOutputStream(outputFile.toPath())) {
                     buffer = new byte[(int) zipEntry.getSize()];
                     while ((readLen = inputStream.read(buffer)) > 0) {
                         outputStream.write(buffer, 0, readLen);
@@ -854,7 +853,7 @@
             zipArchiveEntry.setMethod(ZipEntry.DEFLATED);
 
             zipArchiveOutputStream.putArchiveEntry(zipArchiveEntry);
-            try (final FileInputStream input = new FileInputStream(fileToAdd)) {
+            try (final InputStream input = Files.newInputStream(fileToAdd.toPath())) {
                 IOUtils.copy(input, zipArchiveOutputStream);
             }
             zipArchiveOutputStream.closeArchiveEntry();
diff --git a/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStreamTest.java
index 1726b47..939f706 100644
--- a/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveInputStreamTest.java
@@ -26,9 +26,9 @@
 import static org.junit.Assert.assertThat;
 
 import java.io.BufferedInputStream;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.ArchiveEntry;
@@ -49,8 +49,8 @@
     }
 
     private void checkLongNameEntry(final String archive) throws Exception {
-        try (final FileInputStream fis = new FileInputStream(getFile(archive));
-                final ArArchiveInputStream s = new ArArchiveInputStream(new BufferedInputStream(fis))) {
+        try (final InputStream fis = Files.newInputStream((getFile(archive).toPath()));
+             final ArArchiveInputStream s = new ArArchiveInputStream(new BufferedInputStream(fis))) {
             ArchiveEntry e = s.getNextEntry();
             assertEquals("this_is_a_long_file_name.txt", e.getName());
             assertEquals(14, e.getSize());
@@ -69,7 +69,7 @@
 
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.ar"));
+        try (InputStream in = Files.newInputStream(getFile("bla.ar").toPath());
              ArArchiveInputStream archive = new ArArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -81,7 +81,7 @@
     @Test
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
         final byte[] buf = new byte[2];
-        try (FileInputStream in = new FileInputStream(getFile("bla.ar"));
+        try (InputStream in = Files.newInputStream(getFile("bla.ar").toPath());
              ArArchiveInputStream archive = new ArArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -92,7 +92,7 @@
 
     @Test
     public void simpleInputStream() throws IOException {
-        try (final FileInputStream fileInputStream = new FileInputStream(getFile("bla.ar"))) {
+        try (final InputStream fileInputStream = Files.newInputStream(getFile("bla.ar").toPath())) {
 
             // This default implementation of InputStream.available() always returns zero,
             // and there are many streams in practice where the total length of the stream is not known.
@@ -121,7 +121,7 @@
 
     @Test(expected=IllegalStateException.class)
     public void cantReadWithoutOpeningAnEntry() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.ar"));
+        try (InputStream in = Files.newInputStream(getFile("bla.ar").toPath());
              ArArchiveInputStream archive = new ArArchiveInputStream(in)) {
             archive.read();
         }
@@ -129,7 +129,7 @@
 
     @Test(expected=IllegalStateException.class)
     public void cantReadAfterClose() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.ar"));
+        try (InputStream in = Files.newInputStream(getFile("bla.ar").toPath());
              ArArchiveInputStream archive = new ArArchiveInputStream(in)) {
             archive.close();
             archive.read();
diff --git a/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveOutputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveOutputStreamTest.java
index 7c85b33..d705f5e 100644
--- a/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/ar/ArArchiveOutputStreamTest.java
@@ -23,8 +23,9 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -47,8 +48,8 @@
     @Test
     public void testLongFileNamesWorkUsingBSDDialect() throws Exception {
         final File[] df = createTempDirAndFile();
-        try (FileOutputStream fos = new FileOutputStream(df[1]);
-                ArArchiveOutputStream os = new ArArchiveOutputStream(fos)) {
+        try (OutputStream fos = Files.newOutputStream(df[1].toPath());
+             ArArchiveOutputStream os = new ArArchiveOutputStream(fos)) {
             os.setLongFileMode(ArArchiveOutputStream.LONGFILE_BSD);
             final ArArchiveEntry ae = new ArArchiveEntry("this_is_a_long_name.txt", 14);
             os.putArchiveEntry(ae);
diff --git a/src/test/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStreamTest.java
index ee3bc79..a16c878 100644
--- a/src/test/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/arj/ArjArchiveInputStreamTest.java
@@ -22,7 +22,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 
-import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.file.Files;
 import java.util.Calendar;
 import java.util.TimeZone;
 
@@ -41,7 +42,7 @@
         expected.append("<empty/>\n");
 
         final StringBuilder result = new StringBuilder();
-        try (final ArjArchiveInputStream in = new ArjArchiveInputStream(new FileInputStream(getFile("bla.arj")))) {
+        try (final ArjArchiveInputStream in = new ArjArchiveInputStream(Files.newInputStream(getFile("bla.arj").toPath()))) {
             ArjArchiveEntry entry;
 
             while ((entry = in.getNextEntry()) != null) {
@@ -58,7 +59,7 @@
 
     @Test
     public void testReadingOfAttributesDosVersion() throws Exception {
-        try (final ArjArchiveInputStream in = new ArjArchiveInputStream(new FileInputStream(getFile("bla.arj")))) {
+        try (final ArjArchiveInputStream in = new ArjArchiveInputStream(Files.newInputStream(getFile("bla.arj").toPath()))) {
             final ArjArchiveEntry entry = in.getNextEntry();
             assertEquals("test1.xml", entry.getName());
             assertEquals(30, entry.getSize());
@@ -72,7 +73,7 @@
 
     @Test
     public void testReadingOfAttributesUnixVersion() throws Exception {
-        try (final ArjArchiveInputStream in = new ArjArchiveInputStream(new FileInputStream(getFile("bla.unix.arj")))) {
+        try (final ArjArchiveInputStream in = new ArjArchiveInputStream(Files.newInputStream(getFile("bla.unix.arj").toPath()))) {
             final ArjArchiveEntry entry = in.getNextEntry();
             assertEquals("test1.xml", entry.getName());
             assertEquals(30, entry.getSize());
@@ -86,7 +87,7 @@
 
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.arj"));
+        try (InputStream in = Files.newInputStream(getFile("bla.arj").toPath());
              ArjArchiveInputStream archive = new ArjArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -98,7 +99,7 @@
     @Test
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
         final byte[] buf = new byte[2];
-        try (FileInputStream in = new FileInputStream(getFile("bla.arj"));
+        try (InputStream in = Files.newInputStream(getFile("bla.arj").toPath());
              ArjArchiveInputStream archive = new ArjArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
diff --git a/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStreamTest.java
index cfca57f..81e17d6 100644
--- a/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveInputStreamTest.java
@@ -21,7 +21,8 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.ArchiveEntry;
@@ -38,7 +39,7 @@
         expected.append("<empty/>\n");
 
         final StringBuilder result = new StringBuilder();
-        try (final CpioArchiveInputStream in = new CpioArchiveInputStream(new FileInputStream(getFile("bla.cpio")))) {
+        try (final CpioArchiveInputStream in = new CpioArchiveInputStream(Files.newInputStream(getFile("bla.cpio").toPath()))) {
             CpioArchiveEntry entry;
 
             while ((entry = (CpioArchiveEntry) in.getNextEntry()) != null) {
@@ -56,7 +57,7 @@
     public void testCpioUnarchiveCreatedByRedlineRpm() throws Exception {
         int count = 0;
         try (final CpioArchiveInputStream in = new CpioArchiveInputStream(
-            new FileInputStream(getFile("redline.cpio")))) {
+            Files.newInputStream(getFile("redline.cpio").toPath()))) {
             CpioArchiveEntry entry = null;
 
             while ((entry = (CpioArchiveEntry) in.getNextEntry()) != null) {
@@ -72,7 +73,7 @@
     public void testCpioUnarchiveMultibyteCharName() throws Exception {
         int count = 0;
         try (final CpioArchiveInputStream in = new CpioArchiveInputStream(
-            new FileInputStream(getFile("COMPRESS-459.cpio")), "UTF-8")) {
+            Files.newInputStream(getFile("COMPRESS-459.cpio").toPath()), "UTF-8")) {
             CpioArchiveEntry entry = null;
 
             while ((entry = (CpioArchiveEntry) in.getNextEntry()) != null) {
@@ -86,7 +87,7 @@
 
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.cpio"));
+        try (InputStream in = Files.newInputStream(getFile("bla.cpio").toPath());
              CpioArchiveInputStream archive = new CpioArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -98,7 +99,7 @@
     @Test
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
         final byte[] buf = new byte[2];
-        try (FileInputStream in = new FileInputStream(getFile("bla.cpio"));
+        try (InputStream in = Files.newInputStream(getFile("bla.cpio").toPath());
              CpioArchiveInputStream archive = new CpioArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
diff --git a/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveOutputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveOutputStreamTest.java
index 61a5a12..180438b 100644
--- a/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/cpio/CpioArchiveOutputStreamTest.java
@@ -22,9 +22,9 @@
 import static org.junit.Assert.assertNull;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.utils.IOUtils;
@@ -36,7 +36,7 @@
     public void testWriteOldBinary() throws Exception {
         final File f = getFile("test1.xml");
         final File output = new File(dir, "test.cpio");
-        final FileOutputStream out = new FileOutputStream(output);
+        final OutputStream out = Files.newOutputStream(output.toPath());
         InputStream in = null;
         try {
             final CpioArchiveOutputStream os =
@@ -45,7 +45,7 @@
             os.putArchiveEntry(new CpioArchiveEntry(CpioConstants
                                                     .FORMAT_OLD_BINARY,
                                                     f, "test1.xml"));
-            IOUtils.copy(in = new FileInputStream(f), os);
+            IOUtils.copy(in = Files.newInputStream(f.toPath()), os);
             in.close();
             in = null;
             os.closeArchiveEntry();
@@ -58,7 +58,7 @@
         }
 
         try {
-            in = new CpioArchiveInputStream(new FileInputStream(output));
+            in = new CpioArchiveInputStream(Files.newInputStream(output.toPath()));
             final CpioArchiveEntry e = ((CpioArchiveInputStream) in)
                 .getNextCPIOEntry();
             assertEquals("test1.xml", e.getName());
diff --git a/src/test/java/org/apache/commons/compress/archivers/dump/DumpArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/dump/DumpArchiveInputStreamTest.java
index 79e9d95..b31b635 100644
--- a/src/test/java/org/apache/commons/compress/archivers/dump/DumpArchiveInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/dump/DumpArchiveInputStreamTest.java
@@ -23,8 +23,8 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.io.FileInputStream;
 import java.io.InputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.ArchiveEntry;
@@ -36,7 +36,7 @@
 
     @Test
     public void testNotADumpArchive() throws Exception {
-        try (FileInputStream is = new FileInputStream(getFile("bla.zip"))) {
+        try (InputStream is = Files.newInputStream(getFile("bla.zip").toPath())) {
             new DumpArchiveInputStream(is).close();
             fail("expected an exception");
         } catch (final ArchiveException ex) {
@@ -47,7 +47,7 @@
 
     @Test
     public void testNotADumpArchiveButBigEnough() throws Exception {
-        try (FileInputStream is = new FileInputStream(getFile("zip64support.tar.bz2"))) {
+        try (InputStream is = Files.newInputStream(getFile("zip64support.tar.bz2").toPath())) {
             new DumpArchiveInputStream(is).close();
             fail("expected an exception");
         } catch (final ArchiveException ex) {
@@ -75,7 +75,7 @@
 
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.dump"));
+        try (InputStream in = Files.newInputStream(getFile("bla.dump").toPath());
              DumpArchiveInputStream archive = new DumpArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -87,7 +87,7 @@
     @Test
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
         final byte[] buf = new byte[2];
-        try (FileInputStream in = new FileInputStream(getFile("bla.dump"));
+        try (InputStream in = Files.newInputStream(getFile("bla.dump").toPath());
              DumpArchiveInputStream archive = new DumpArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
diff --git a/src/test/java/org/apache/commons/compress/archivers/jar/JarArchiveOutputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/jar/JarArchiveOutputStreamTest.java
index bf6792b..e63b206 100644
--- a/src/test/java/org/apache/commons/compress/archivers/jar/JarArchiveOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/jar/JarArchiveOutputStreamTest.java
@@ -23,8 +23,8 @@
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.file.Files;
 
 import org.junit.Test;
 import org.apache.commons.compress.AbstractTestCase;
@@ -43,7 +43,7 @@
         ZipFile zf = null;
         try {
 
-            out = new JarArchiveOutputStream(new FileOutputStream(testArchive));
+            out = new JarArchiveOutputStream(Files.newOutputStream(testArchive.toPath()));
             out.putArchiveEntry(new ZipArchiveEntry("foo/"));
             out.closeArchiveEntry();
             out.putArchiveEntry(new ZipArchiveEntry("bar/"));
diff --git a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
index 372a743..7691a01 100644
--- a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
@@ -28,7 +28,6 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
@@ -280,7 +279,7 @@
     @Test
     public void getEntriesOfUnarchiveInMemoryTest() throws IOException {
         byte[] data = null;
-        try (FileInputStream fis = new FileInputStream(getFile("bla.7z"))) {
+        try (InputStream fis = Files.newInputStream(getFile("bla.7z").toPath())) {
             data = IOUtils.toByteArray(fis);
         }
         try (SevenZFile sevenZFile = new SevenZFile(new SeekableInMemoryByteChannel(data))) {
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java b/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java
index 5f9b14b..d00f9e1 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java
@@ -33,7 +33,6 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.Files;
@@ -48,7 +47,7 @@
     @Test
     public void testOldGNU() throws Throwable {
         final File file = getFile("oldgnu_sparse.tar");
-        try (TarArchiveInputStream tin = new TarArchiveInputStream(new FileInputStream(file))) {
+        try (TarArchiveInputStream tin = new TarArchiveInputStream(Files.newInputStream(file.toPath()))) {
             final TarArchiveEntry ae = tin.getNextTarEntry();
             assertEquals("sparsefile", ae.getName());
             assertTrue(ae.isOldGNUSparse());
@@ -97,7 +96,7 @@
     @Test
     public void testPaxGNU() throws Throwable {
         final File file = getFile("pax_gnu_sparse.tar");
-        try (TarArchiveInputStream tin = new TarArchiveInputStream(new FileInputStream(file))) {
+        try (TarArchiveInputStream tin = new TarArchiveInputStream(Files.newInputStream(file.toPath()))) {
             assertPaxGNUEntry(tin, "0.0");
             assertPaxGNUEntry(tin, "0.1");
             assertPaxGNUEntry(tin, "1.0");
@@ -140,12 +139,12 @@
 
         final File oldGNUSparseTar = getFile("oldgnu_sparse.tar");
         final File paxGNUSparseTar = getFile("pax_gnu_sparse.tar");
-        try (TarArchiveInputStream paxGNUSparseInputStream = new TarArchiveInputStream(new FileInputStream(paxGNUSparseTar))) {
+        try (TarArchiveInputStream paxGNUSparseInputStream = new TarArchiveInputStream(Files.newInputStream(paxGNUSparseTar.toPath()))) {
 
             // compare between old GNU and PAX 0.0
             TarArchiveEntry paxGNUEntry = paxGNUSparseInputStream.getNextTarEntry();
             assertTrue(paxGNUSparseInputStream.canReadEntryData(paxGNUEntry));
-            try (TarArchiveInputStream oldGNUSparseInputStream = new TarArchiveInputStream(new FileInputStream(oldGNUSparseTar))) {
+            try (TarArchiveInputStream oldGNUSparseInputStream = new TarArchiveInputStream(Files.newInputStream(oldGNUSparseTar.toPath()))) {
                 final TarArchiveEntry oldGNUEntry = oldGNUSparseInputStream.getNextTarEntry();
                 assertTrue(oldGNUSparseInputStream.canReadEntryData(oldGNUEntry));
                 assertArrayEquals(IOUtils.toByteArray(oldGNUSparseInputStream),
@@ -155,7 +154,7 @@
             // compare between old GNU and PAX 0.1
             paxGNUEntry = paxGNUSparseInputStream.getNextTarEntry();
             assertTrue(paxGNUSparseInputStream.canReadEntryData(paxGNUEntry));
-            try (TarArchiveInputStream oldGNUSparseInputStream = new TarArchiveInputStream(new FileInputStream(oldGNUSparseTar))) {
+            try (TarArchiveInputStream oldGNUSparseInputStream = new TarArchiveInputStream(Files.newInputStream(oldGNUSparseTar.toPath()))) {
                 final TarArchiveEntry oldGNUEntry = oldGNUSparseInputStream.getNextTarEntry();
                 assertTrue(oldGNUSparseInputStream.canReadEntryData(oldGNUEntry));
                 assertArrayEquals(IOUtils.toByteArray(oldGNUSparseInputStream),
@@ -165,7 +164,7 @@
             // compare between old GNU and PAX 1.0
             paxGNUEntry = paxGNUSparseInputStream.getNextTarEntry();
             assertTrue(paxGNUSparseInputStream.canReadEntryData(paxGNUEntry));
-            try (TarArchiveInputStream oldGNUSparseInputStream = new TarArchiveInputStream(new FileInputStream(oldGNUSparseTar))) {
+            try (TarArchiveInputStream oldGNUSparseInputStream = new TarArchiveInputStream(Files.newInputStream(oldGNUSparseTar.toPath()))) {
                 final TarArchiveEntry oldGNUEntry = oldGNUSparseInputStream.getNextTarEntry();
                 assertTrue(oldGNUSparseInputStream.canReadEntryData(oldGNUEntry));
                 assertArrayEquals(IOUtils.toByteArray(oldGNUSparseInputStream),
@@ -222,7 +221,7 @@
         try {
             final File file = getFile("oldgnu_sparse.tar");
             try (InputStream sparseFileInputStream = extractTarAndGetInputStream(file, "sparsefile");
-                 TarArchiveInputStream tin = new TarArchiveInputStream(new FileInputStream(file))) {
+                 TarArchiveInputStream tin = new TarArchiveInputStream(Files.newInputStream(file.toPath()))) {
                 final TarArchiveEntry entry = tin.getNextTarEntry();
                 assertTrue(tin.canReadEntryData(entry));
                 assertArrayEquals(IOUtils.toByteArray(tin),
@@ -254,7 +253,7 @@
 
         final File file = getFile("oldgnu_extended_sparse.tar");
         try (InputStream sparseFileInputStream = extractTarAndGetInputStream(file, "sparse6");
-             TarArchiveInputStream tin = new TarArchiveInputStream(new FileInputStream(file))) {
+             TarArchiveInputStream tin = new TarArchiveInputStream(Files.newInputStream(file.toPath()))) {
             final TarArchiveEntry ae = tin.getNextTarEntry();
             assertTrue(tin.canReadEntryData(ae));
 
@@ -336,7 +335,7 @@
                 getTarBinaryHelp().startsWith("tar (GNU tar) 1.28"));
 
         final File file = getFile("pax_gnu_sparse.tar");
-        try (TarArchiveInputStream tin = new TarArchiveInputStream(new FileInputStream(file))) {
+        try (TarArchiveInputStream tin = new TarArchiveInputStream(Files.newInputStream(file.toPath()))) {
 
             TarArchiveEntry paxGNUEntry = tin.getNextTarEntry();
             assertTrue(tin.canReadEntryData(paxGNUEntry));
@@ -434,7 +433,7 @@
 
         for (final File file : resultDir.listFiles()) {
             if (file.getName().equals(sparseFileName)) {
-                return new FileInputStream(file);
+                return Files.newInputStream(file.toPath());
             }
         }
         fail("didn't find " + sparseFileName + " after extracting " + tarFile);
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java
index 6e192d2..988a469 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java
@@ -31,10 +31,9 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.Locale;
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.zip.ZipEncodingHelper;
@@ -66,7 +65,7 @@
         TarArchiveOutputStream tout = null;
         TarArchiveInputStream tin = null;
         try {
-            tout = new TarArchiveOutputStream(new FileOutputStream(f));
+            tout = new TarArchiveOutputStream(Files.newOutputStream(f.toPath()));
             TarArchiveEntry t = new TarArchiveEntry(new File(ROOT));
             tout.putArchiveEntry(t);
             tout.closeArchiveEntry();
@@ -90,7 +89,7 @@
             tout.close();
             tout = null;
 
-            tin = new TarArchiveInputStream(new FileInputStream(f));
+            tin = new TarArchiveInputStream(Files.newInputStream(f.toPath()));
             //tin.setDebug(true);
             t = tin.getNextTarEntry();
             assertNotNull(t);
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
index 1a8c682..03d1318 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
@@ -29,10 +29,10 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.TimeZone;
@@ -50,7 +50,7 @@
 
     @Test
     public void workaroundForBrokenTimeHeader() throws Exception {
-        try (TarArchiveInputStream in = new TarArchiveInputStream(new FileInputStream(getFile("simple-aix-native-tar.tar")))) {
+        try (TarArchiveInputStream in = new TarArchiveInputStream(Files.newInputStream(getFile("simple-aix-native-tar.tar").toPath()))) {
             TarArchiveEntry tae = in.getNextTarEntry();
             tae = in.getNextTarEntry();
             assertEquals("sample/link-to-txt-file.lnk", tae.getName());
@@ -72,7 +72,7 @@
     }
 
     private void datePriorToEpoch(final String archive) throws Exception {
-        try (TarArchiveInputStream in = new TarArchiveInputStream(new FileInputStream(getFile(archive)))) {
+        try (TarArchiveInputStream in = new TarArchiveInputStream(Files.newInputStream(getFile(archive).toPath()))) {
             final TarArchiveEntry tae = in.getNextTarEntry();
             assertEquals("foo", tae.getName());
             final Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
@@ -164,12 +164,12 @@
     public void shouldThrowAnExceptionOnTruncatedEntries() throws Exception {
         final File dir = mkdir("COMPRESS-279");
         final TarArchiveInputStream is = getTestStream("/COMPRESS-279.tar");
-        FileOutputStream out = null;
+        OutputStream out = null;
         try {
             TarArchiveEntry entry = is.getNextTarEntry();
             int count = 0;
             while (entry != null) {
-                out = new FileOutputStream(new File(dir, String.valueOf(count)));
+                out = Files.newOutputStream(new File(dir, String.valueOf(count)).toPath());
                 IOUtils.copy(is, out);
                 out.close();
                 out = null;
@@ -282,7 +282,7 @@
 
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.tar"));
+        try (InputStream in = Files.newInputStream(getFile("bla.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -294,7 +294,7 @@
     @Test
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws Exception {
         final byte[] buf = new byte[2];
-        try (FileInputStream in = new FileInputStream(getFile("bla.tar"));
+        try (InputStream in = Files.newInputStream(getFile("bla.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -326,7 +326,7 @@
             // -----------------------
             final String fileName = "/" + dirDirectory + "/" + subDir;
             final File tarF = new File(rootPath + "/tar" + i + ".tar");
-            final FileOutputStream dest = new FileOutputStream(tarF);
+            final OutputStream dest = Files.newOutputStream(tarF.toPath());
             final TarArchiveOutputStream out = new TarArchiveOutputStream(new BufferedOutputStream(dest));
             out.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_STAR);
             out.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU);
@@ -342,7 +342,7 @@
             // -----------------------
             // untar these tars
             // -----------------------
-            final InputStream is = new FileInputStream(tarF);
+            final InputStream is = Files.newInputStream(tarF.toPath());
             final TarArchiveInputStream debInputStream = (TarArchiveInputStream) ArchiveStreamFactory.DEFAULT
                     .createArchiveInputStream("tar", is);
             TarArchiveEntry outEntry;
@@ -355,7 +355,7 @@
 
     @Test(expected = IOException.class)
     public void testParseTarWithSpecialPaxHeaders() throws IOException {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-530.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-530.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -364,7 +364,7 @@
 
     @Test(expected = IOException.class)
     public void testParseTarWithNonNumberPaxHeaders() throws IOException {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-529.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-529.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             archive.getNextEntry();
         }
@@ -372,7 +372,7 @@
 
     @Test(expected = IOException.class)
     public void testParseTarTruncatedInPadding() throws IOException {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-544_truncated_in_padding.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-544_truncated_in_padding.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             while (archive.getNextTarEntry() != null) {
             }
@@ -381,7 +381,7 @@
 
     @Test(expected = IOException.class)
     public void testParseTarTruncatedInContent() throws IOException {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-544_truncated_in_content.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-544_truncated_in_content.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             while (archive.getNextTarEntry() != null) {
             }
@@ -390,7 +390,7 @@
 
     @Test(expected = IOException.class)
     public void testThrowExceptionWithNullEntry() throws IOException {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-554.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-554.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             while (archive.getNextTarEntry() != null) {
             }
@@ -399,7 +399,7 @@
 
     @Test(expected = IOException.class)
     public void testThrowException() throws IOException {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-553.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-553.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             while (archive.getNextTarEntry() != null) {
             }
@@ -434,7 +434,7 @@
 
     @Test(expected = IOException.class)
     public void rejectsArchivesWithNegativeSizes() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-569.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-569.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             while (archive.getNextTarEntry() != null) {
             }
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
index b74c58d..874a2ff 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
@@ -28,13 +28,13 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.OutputStream;
 import java.io.Reader;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.security.MessageDigest;
 import java.util.Calendar;
 import java.util.Date;
@@ -55,7 +55,7 @@
     public void testCount() throws Exception {
         final File f = File.createTempFile("commons-compress-tarcount", ".tar");
         f.deleteOnExit();
-        final FileOutputStream fos = new FileOutputStream(f);
+        final OutputStream fos = Files.newOutputStream(f.toPath());
 
         final ArchiveOutputStream tarOut = ArchiveStreamFactory.DEFAULT
             .createArchiveOutputStream(ArchiveStreamFactory.TAR, fos);
@@ -64,7 +64,7 @@
         final TarArchiveEntry sEntry = new TarArchiveEntry(file1, file1.getName());
         tarOut.putArchiveEntry(sEntry);
 
-        final FileInputStream in = new FileInputStream(file1);
+        final InputStream in = Files.newInputStream(file1.toPath());
         final byte[] buf = new byte[8192];
 
         int read = 0;
@@ -677,7 +677,7 @@
     private void testPadding(int blockSize, final String fileName, final byte[] contents) throws IOException {
         final File f = File.createTempFile("commons-compress-padding", ".tar");
         f.deleteOnExit();
-        final FileOutputStream fos = new FileOutputStream(f);
+        final OutputStream fos = Files.newOutputStream(f.toPath());
         final TarArchiveOutputStream tos;
         if (blockSize != -2) {
             tos = new TarArchiveOutputStream(fos, blockSize);
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/TarLister.java b/src/test/java/org/apache/commons/compress/archivers/tar/TarLister.java
index a4c8610..388cde2 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarLister.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarLister.java
@@ -20,8 +20,8 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.InputStream;
+import java.nio.file.Files;
 
 /**
  * Simple command line application that lists the contents of a tar archive.
@@ -43,7 +43,7 @@
         if (!f.isFile()) {
             System.err.println(f + " doesn't exist or is a directory");
         }
-        final InputStream fis = new BufferedInputStream(new FileInputStream(f));
+        final InputStream fis = new BufferedInputStream(Files.newInputStream(f.toPath()));
         final TarArchiveInputStream ais;
         if (args.length > 1) {
             ais = new TarArchiveInputStream(fis, args[1]);
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/TarUtilsTest.java b/src/test/java/org/apache/commons/compress/archivers/tar/TarUtilsTest.java
index 9e915aa..446a059 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarUtilsTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarUtilsTest.java
@@ -19,9 +19,10 @@
 package org.apache.commons.compress.archivers.tar;
 
 import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -450,7 +451,7 @@
 
     @Test(expected = IOException.class)
     public void testParseTarWithSpecialPaxHeaders() throws IOException {
-        try (FileInputStream in = new FileInputStream(getFile("COMPRESS-530.tar"));
+        try (InputStream in = Files.newInputStream(getFile("COMPRESS-530.tar").toPath());
              TarArchiveInputStream archive = new TarArchiveInputStream(in)) {
             archive.getNextEntry();
             IOUtils.toByteArray(archive);
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/DataDescriptorTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/DataDescriptorTest.java
index 742f24f..f0310a5 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/DataDescriptorTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/DataDescriptorTest.java
@@ -19,10 +19,11 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.Arrays;
 
 import org.apache.commons.compress.utils.IOUtils;
@@ -100,7 +101,7 @@
         }
 
         final byte[] data;
-        try (FileInputStream fis = new FileInputStream(f)) {
+        try (InputStream fis = Files.newInputStream(f.toPath())) {
             data = IOUtils.toByteArray(fis);
         }
 
@@ -142,7 +143,7 @@
         }
 
         final File f = new File(dir, "test.zip");
-        try (FileOutputStream fos = new FileOutputStream(f)) {
+        try (OutputStream fos = Files.newOutputStream(f.toPath())) {
             fos.write(init.toByteArray());
         }
 
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/EncryptedArchiveTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/EncryptedArchiveTest.java
index 3a774fa..ab87f09 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/EncryptedArchiveTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/EncryptedArchiveTest.java
@@ -26,8 +26,8 @@
 import static org.junit.Assert.fail;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.nio.file.Files;
 
 import org.junit.Test;
 
@@ -60,7 +60,7 @@
     public void testReadPasswordEncryptedEntryViaStream()
         throws IOException {
         final File file = getFile("password-encrypted.zip");
-        try (ZipArchiveInputStream zin = new ZipArchiveInputStream(new FileInputStream(file))) {
+        try (ZipArchiveInputStream zin = new ZipArchiveInputStream(Files.newInputStream(file.toPath()))) {
             final ZipArchiveEntry zae = zin.getNextZipEntry();
             assertEquals("LICENSE.txt", zae.getName());
             assertTrue(zae.getGeneralPurposeBit().usesEncryption());
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ExplodeSupportTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ExplodeSupportTest.java
index 4ce9c8d..773fa34 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ExplodeSupportTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ExplodeSupportTest.java
@@ -26,9 +26,9 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
 import java.util.zip.CRC32;
 import java.util.zip.CheckedOutputStream;
 
@@ -71,7 +71,7 @@
     }
 
     private void testZipStreamWithImplodeCompression(final String filename, final String entryName) throws IOException {
-        final ZipArchiveInputStream zin = new ZipArchiveInputStream(new FileInputStream(new File(filename)));
+        final ZipArchiveInputStream zin = new ZipArchiveInputStream(Files.newInputStream(new File(filename).toPath()));
         final ZipArchiveEntry entry = zin.getNextZipEntry();
         assertEquals("entry name", entryName, entry.getName());
         assertTrue("entry can't be read", zin.canReadEntryData(entry));
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/Lister.java b/src/test/java/org/apache/commons/compress/archivers/zip/Lister.java
index 072b206..6fd2901 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/Lister.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/Lister.java
@@ -20,10 +20,10 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.Enumeration;
 
 import org.apache.commons.compress.archivers.ArchiveEntry;
@@ -54,7 +54,7 @@
             usage();
         }
         if (cl.useStream) {
-            try (BufferedInputStream fs = new BufferedInputStream(new FileInputStream(f))) {
+            try (BufferedInputStream fs = new BufferedInputStream(Files.newInputStream(f.toPath()))) {
                 final ZipArchiveInputStream zs =
                         new ZipArchiveInputStream(fs, cl.encoding, true,
                                 cl.allowStoredEntriesWithDataDescriptor);
@@ -94,7 +94,7 @@
         if (!f.getParentFile().exists()) {
             f.getParentFile().mkdirs();
         }
-        try (FileOutputStream fos = new FileOutputStream(f)) {
+        try (OutputStream fos = Files.newOutputStream(f.toPath())) {
             IOUtils.copy(is, fos);
         }
     }
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java
index 9f532a5..bea0f99 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java
@@ -23,8 +23,9 @@
 import static org.junit.Assert.fail;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.junit.Test;
@@ -69,8 +70,8 @@
     @Test
     public void testRead7ZipMultiVolumeArchiveForStream() throws IOException {
 
-        try (final FileInputStream archive = new FileInputStream(getFile("apache-maven-2.2.1.zip.001"));
-            ZipArchiveInputStream zi = new ZipArchiveInputStream(archive, null, false)) {
+        try (final InputStream archive = Files.newInputStream(getFile("apache-maven-2.2.1.zip.001").toPath());
+             ZipArchiveInputStream zi = new ZipArchiveInputStream(archive, null, false)) {
 
             // these are the entries that are supposed to be processed
             // correctly without any problems
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ParallelScatterZipCreatorTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ParallelScatterZipCreatorTest.java
index 54840da..0bf8f4d 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ParallelScatterZipCreatorTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ParallelScatterZipCreatorTest.java
@@ -26,10 +26,9 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Map;
@@ -245,7 +244,7 @@
                 continue;
             }
 
-            entries.put(file.getName(), IOUtils.toByteArray(new FileInputStream(file)));
+            entries.put(file.getName(), IOUtils.toByteArray(Files.newInputStream(file.toPath())));
 
             final ZipArchiveEntry zipArchiveEntry = new ZipArchiveEntry(file.getName());
             zipArchiveEntry.setMethod(ZipEntry.DEFLATED);
@@ -254,8 +253,8 @@
 
             final InputStreamSupplier iss = () -> {
                 try {
-                    return new FileInputStream(file);
-                } catch (final FileNotFoundException e) {
+                    return Files.newInputStream(file.toPath());
+                } catch (final IOException e) {
                     return null;
                 }
             };
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java
index 7cbf8c2..10bd0d7 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/UTF8ZipFilesTest.java
@@ -23,12 +23,12 @@
 import static org.junit.Assert.assertNotSame;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.Enumeration;
 import java.util.zip.CRC32;
 
@@ -113,8 +113,8 @@
 
     @Test
     public void testRead7ZipArchiveForStream() throws IOException {
-        final FileInputStream archive =
-            new FileInputStream(getFile("utf8-7zip-test.zip"));
+        final InputStream archive =
+                Files.newInputStream(getFile("utf8-7zip-test.zip").toPath());
         try (ZipArchiveInputStream zi = new ZipArchiveInputStream(archive, CP437, false)) {
             assertEquals(ASCII_TXT, zi.getNextEntry().getName());
             assertEquals(OIL_BARREL_TXT, zi.getNextEntry().getName());
@@ -160,8 +160,8 @@
 
     @Test
     public void testReadWinZipArchiveForStream() throws IOException {
-        final FileInputStream archive =
-            new FileInputStream(getFile("utf8-winzip-test.zip"));
+        final InputStream archive =
+            Files.newInputStream(getFile("utf8-winzip-test.zip").toPath());
         ZipArchiveInputStream zi = null;
         try {
             // fix for test fails on Windows with default charset that is not UTF-8
@@ -188,7 +188,7 @@
         ZipArchiveInputStream zi = null;
         try {
             createTestFile(file, CharsetNames.US_ASCII, false, true);
-            final FileInputStream archive = new FileInputStream(file);
+            final InputStream archive = Files.newInputStream(file.toPath());
             zi = new ZipArchiveInputStream(archive, CharsetNames.US_ASCII, true);
             assertEquals(OIL_BARREL_TXT, zi.getNextEntry().getName());
             assertEquals(EURO_FOR_DOLLAR_TXT, zi.getNextEntry().getName());
@@ -235,8 +235,8 @@
     @Test
     public void testRawNameReadFromStream()
         throws IOException {
-        final FileInputStream archive =
-            new FileInputStream(getFile("utf8-7zip-test.zip"));
+        final InputStream archive =
+            Files.newInputStream(getFile("utf8-7zip-test.zip").toPath());
         try (ZipArchiveInputStream zi = new ZipArchiveInputStream(archive, CP437, false)) {
             assertRawNameOfAcsiiTxt((ZipArchiveEntry) zi.getNextEntry());
         }
@@ -247,7 +247,7 @@
      */
     @Test
     public void streamSkipsOverUnicodeExtraFieldWithUnsupportedVersion() throws IOException {
-        try (FileInputStream archive = new FileInputStream(getFile("COMPRESS-479.zip"));
+        try (InputStream archive = Files.newInputStream(getFile("COMPRESS-479.zip").toPath());
              ZipArchiveInputStream zi = new ZipArchiveInputStream(archive)) {
             assertEquals(OIL_BARREL_TXT, zi.getNextEntry().getName());
             assertEquals("%U20AC_for_Dollar.txt", zi.getNextEntry().getName());
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java
index 5fa86c7..bb7969d 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/X5455_ExtendedTimestampTest.java
@@ -22,9 +22,9 @@
 import org.junit.Test;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.nio.file.Files;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Calendar;
@@ -418,8 +418,8 @@
         tmpDir = mkdir("X5455");
         final File output = new File(tmpDir, "write_rewrite.zip");
         final Date d = new Date(97, 8, 24, 15, 10, 2);
-        try (final OutputStream out = new FileOutputStream(output);
-            ZipArchiveOutputStream os = new ZipArchiveOutputStream(out)) {
+        try (final OutputStream out = Files.newOutputStream(output.toPath());
+             ZipArchiveOutputStream os = new ZipArchiveOutputStream(out)) {
             final ZipArchiveEntry ze = new ZipArchiveEntry("foo");
             xf.setModifyJavaTime(d);
             xf.setFlags((byte) 1);
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/Zip64SupportIT.java b/src/test/java/org/apache/commons/compress/archivers/zip/Zip64SupportIT.java
index a758fd2..9e8cb74 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/Zip64SupportIT.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/Zip64SupportIT.java
@@ -30,8 +30,6 @@
 
 import java.io.BufferedOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.RandomAccessFile;
@@ -2366,7 +2364,7 @@
         BufferedOutputStream os = null;
         ZipArchiveOutputStream zos = useRandomAccessFile
             ? new ZipArchiveOutputStream(f)
-            : new ZipArchiveOutputStream(os = new BufferedOutputStream(new FileOutputStream(f)));
+            : new ZipArchiveOutputStream(os = new BufferedOutputStream(Files.newOutputStream(f.toPath())));
         if (splitSize != null) {
             zos = new ZipArchiveOutputStream(f, splitSize);
         }
@@ -2448,7 +2446,7 @@
 
     private static void read5GBOfZerosImpl(final File f, final String expectedName)
         throws IOException {
-        try (FileInputStream fin = new FileInputStream(f);
+        try (InputStream fin = Files.newInputStream(f.toPath());
                 ZipArchiveInputStream zin = new ZipArchiveInputStream(fin)) {
             ZipArchiveEntry zae = zin.getNextZipEntry();
             while (zae.isDirectory()) {
@@ -2511,7 +2509,7 @@
     }
 
     private static void read100KFilesImpl(final File f) throws IOException {
-        try (FileInputStream fin = new FileInputStream(f);
+        try (InputStream fin = Files.newInputStream(f.toPath());
                 ZipArchiveInputStream zin = new ZipArchiveInputStream(fin)) {
             int files = 0;
             ZipArchiveEntry zae = null;
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
index befabb3..296b4ec 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
@@ -32,11 +32,11 @@
 import java.io.ByteArrayOutputStream;
 import java.io.EOFException;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.channels.Channels;
 import java.nio.channels.SeekableByteChannel;
+import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipException;
@@ -61,7 +61,7 @@
      */
     @Test
     public void winzipBackSlashWorkaround() throws Exception {
-        try (ZipArchiveInputStream in = new ZipArchiveInputStream(new FileInputStream(getFile("test-winzip.zip")))) {
+        try (ZipArchiveInputStream in = new ZipArchiveInputStream(Files.newInputStream(getFile("test-winzip.zip").toPath()))) {
             ZipArchiveEntry zae = in.getNextZipEntry();
             zae = in.getNextZipEntry();
             zae = in.getNextZipEntry();
@@ -118,7 +118,7 @@
      */
     @Test
     public void shouldReadNestedZip() throws IOException {
-        try (ZipArchiveInputStream in = new ZipArchiveInputStream(new FileInputStream(getFile("COMPRESS-219.zip")))) {
+        try (ZipArchiveInputStream in = new ZipArchiveInputStream(Files.newInputStream(getFile("COMPRESS-219.zip").toPath()))) {
             extractZipInputStream(in);
         }
     }
@@ -136,13 +136,13 @@
 
     @Test
     public void testUnshrinkEntry() throws Exception {
-        final ZipArchiveInputStream in = new ZipArchiveInputStream(new FileInputStream(getFile("SHRUNK.ZIP")));
+        final ZipArchiveInputStream in = new ZipArchiveInputStream(Files.newInputStream(getFile("SHRUNK.ZIP").toPath()));
 
         ZipArchiveEntry entry = in.getNextZipEntry();
         assertEquals("method", ZipMethod.UNSHRINKING.getCode(), entry.getMethod());
         assertTrue(in.canReadEntryData(entry));
 
-        FileInputStream original = new FileInputStream(getFile("test1.xml"));
+        InputStream original = Files.newInputStream(getFile("test1.xml").toPath());
         try {
             assertArrayEquals(IOUtils.toByteArray(original), IOUtils.toByteArray(in));
         } finally {
@@ -153,7 +153,7 @@
         assertEquals("method", ZipMethod.UNSHRINKING.getCode(), entry.getMethod());
         assertTrue(in.canReadEntryData(entry));
 
-        original = new FileInputStream(getFile("test2.xml"));
+        original = Files.newInputStream(getFile("test2.xml").toPath());
         try {
             assertArrayEquals(IOUtils.toByteArray(original), IOUtils.toByteArray(in));
         } finally {
@@ -170,7 +170,7 @@
     @Test
     public void testReadingOfFirstStoredEntry() throws Exception {
 
-        try (ZipArchiveInputStream in = new ZipArchiveInputStream(new FileInputStream(getFile("COMPRESS-264.zip")))) {
+        try (ZipArchiveInputStream in = new ZipArchiveInputStream(Files.newInputStream(getFile("COMPRESS-264.zip").toPath()))) {
             final ZipArchiveEntry ze = in.getNextZipEntry();
             assertEquals(5, ze.getSize());
             assertArrayEquals(new byte[] { 'd', 'a', 't', 'a', '\n' },
@@ -185,7 +185,7 @@
      */
     @Test
     public void testMessageWithCorruptFileName() throws Exception {
-        try (ZipArchiveInputStream in = new ZipArchiveInputStream(new FileInputStream(getFile("COMPRESS-351.zip")))) {
+        try (ZipArchiveInputStream in = new ZipArchiveInputStream(Files.newInputStream(getFile("COMPRESS-351.zip").toPath()))) {
             ZipArchiveEntry ze = in.getNextZipEntry();
             while (ze != null) {
                 ze = in.getNextZipEntry();
@@ -200,7 +200,7 @@
     @Test
     public void testUnzipBZip2CompressedEntry() throws Exception {
 
-        try (ZipArchiveInputStream in = new ZipArchiveInputStream(new FileInputStream(getFile("bzip2-zip.zip")))) {
+        try (ZipArchiveInputStream in = new ZipArchiveInputStream(Files.newInputStream(getFile("bzip2-zip.zip").toPath()))) {
             final ZipArchiveEntry ze = in.getNextZipEntry();
             assertEquals(42, ze.getSize());
             final byte[] expected = new byte[42];
@@ -216,8 +216,8 @@
     public void readDeflate64CompressedStream() throws Exception {
         final File input = getFile("COMPRESS-380/COMPRESS-380-input");
         final File archive = getFile("COMPRESS-380/COMPRESS-380.zip");
-        try (FileInputStream in = new FileInputStream(input);
-             ZipArchiveInputStream zin = new ZipArchiveInputStream(new FileInputStream(archive))) {
+        try (InputStream in = Files.newInputStream(input.toPath());
+             ZipArchiveInputStream zin = new ZipArchiveInputStream(Files.newInputStream(archive.toPath()))) {
             final byte[] orig = IOUtils.toByteArray(in);
             final ZipArchiveEntry e = zin.getNextZipEntry();
             final byte[] fromZip = IOUtils.toByteArray(zin);
@@ -229,7 +229,7 @@
     public void readDeflate64CompressedStreamWithDataDescriptor() throws Exception {
         // this is a copy of bla.jar with META-INF/MANIFEST.MF's method manually changed to ENHANCED_DEFLATED
         final File archive = getFile("COMPRESS-380/COMPRESS-380-dd.zip");
-        try (ZipArchiveInputStream zin = new ZipArchiveInputStream(new FileInputStream(archive))) {
+        try (ZipArchiveInputStream zin = new ZipArchiveInputStream(Files.newInputStream(archive.toPath()))) {
             final ZipArchiveEntry e = zin.getNextZipEntry();
             assertEquals(-1, e.getSize());
             assertEquals(ZipMethod.ENHANCED_DEFLATED.getCode(), e.getMethod());
@@ -367,7 +367,7 @@
     }
 
     private void singleByteReadConsistentlyReturnsMinusOneAtEof(final File file) throws Exception {
-        try (FileInputStream in = new FileInputStream(file);
+        try (InputStream in = Files.newInputStream(file.toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -408,7 +408,7 @@
 
     private void multiByteReadConsistentlyReturnsMinusOneAtEof(final File file) throws Exception {
         final byte[] buf = new byte[2];
-        try (FileInputStream in = new FileInputStream(getFile("bla.zip"));
+        try (InputStream in = Files.newInputStream(getFile("bla.zip").toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(in)) {
             final ArchiveEntry e = archive.getNextEntry();
             IOUtils.toByteArray(archive);
@@ -420,7 +420,7 @@
     @Test
     public void singleByteReadThrowsAtEofForCorruptedStoredEntry() throws Exception {
         byte[] content;
-        try (FileInputStream fs = new FileInputStream(getFile("COMPRESS-264.zip"))) {
+        try (InputStream fs = Files.newInputStream(getFile("COMPRESS-264.zip").toPath())) {
             content = IOUtils.toByteArray(fs);
         }
         // make size much bigger than entry's real size
@@ -454,7 +454,7 @@
     @Test
     public void multiByteReadThrowsAtEofForCorruptedStoredEntry() throws Exception {
         byte[] content;
-        try (FileInputStream fs = new FileInputStream(getFile("COMPRESS-264.zip"))) {
+        try (InputStream fs = Files.newInputStream(getFile("COMPRESS-264.zip").toPath())) {
             content = IOUtils.toByteArray(fs);
         }
         // make size much bigger than entry's real size
@@ -488,7 +488,7 @@
 
     @Test
     public void properlyReadsStoredEntries() throws IOException {
-        try (FileInputStream fs = new FileInputStream(getFile("bla-stored.zip"));
+        try (InputStream fs = Files.newInputStream(getFile("bla-stored.zip").toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(fs)) {
             ZipArchiveEntry e = archive.getNextZipEntry();
             assertNotNull(e);
@@ -510,7 +510,7 @@
 
     @Test
     public void rejectsStoredEntriesWithDataDescriptorByDefault() throws IOException {
-        try (FileInputStream fs = new FileInputStream(getFile("bla-stored-dd.zip"));
+        try (InputStream fs = Files.newInputStream(getFile("bla-stored-dd.zip").toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(fs)) {
             final ZipArchiveEntry e = archive.getNextZipEntry();
             assertNotNull(e);
@@ -525,7 +525,7 @@
 
     @Test
     public void properlyReadsStoredEntryWithDataDescriptorWithSignature() throws IOException {
-        try (FileInputStream fs = new FileInputStream(getFile("bla-stored-dd.zip"));
+        try (InputStream fs = Files.newInputStream(getFile("bla-stored-dd.zip").toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
             final ZipArchiveEntry e = archive.getNextZipEntry();
             assertNotNull(e);
@@ -541,7 +541,7 @@
 
     @Test
     public void properlyReadsStoredEntryWithDataDescriptorWithoutSignature() throws IOException {
-        try (FileInputStream fs = new FileInputStream(getFile("bla-stored-dd-nosig.zip"));
+        try (InputStream fs = Files.newInputStream(getFile("bla-stored-dd-nosig.zip").toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
             final ZipArchiveEntry e = archive.getNextZipEntry();
             assertNotNull(e);
@@ -557,7 +557,7 @@
 
     @Test
     public void throwsIfStoredDDIsInconsistent() throws IOException {
-        try (FileInputStream fs = new FileInputStream(getFile("bla-stored-dd-sizes-differ.zip"));
+        try (InputStream fs = Files.newInputStream(getFile("bla-stored-dd-sizes-differ.zip").toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
             final ZipArchiveEntry e = archive.getNextZipEntry();
             assertNotNull(e);
@@ -572,7 +572,7 @@
 
     @Test
     public void throwsIfStoredDDIsDifferentFromLengthRead() throws IOException {
-        try (FileInputStream fs = new FileInputStream(getFile("bla-stored-dd-contradicts-actualsize.zip"));
+        try (InputStream fs = Files.newInputStream(getFile("bla-stored-dd-contradicts-actualsize.zip").toPath());
              ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
             final ZipArchiveEntry e = archive.getNextZipEntry();
             assertNotNull(e);
@@ -593,7 +593,7 @@
              ZipArchiveInputStream splitInputStream = new ZipArchiveInputStream(inputStream, ZipEncodingHelper.UTF8, true, false, true)) {
 
             final File fileToCompare = getFile("COMPRESS-477/split_zip_created_by_zip/zip_to_compare_created_by_zip.zip");
-            try (ZipArchiveInputStream inputStreamToCompare = new ZipArchiveInputStream(new FileInputStream(fileToCompare), ZipEncodingHelper.UTF8, true, false, true)) {
+            try (ZipArchiveInputStream inputStreamToCompare = new ZipArchiveInputStream(Files.newInputStream(fileToCompare.toPath()), ZipEncodingHelper.UTF8, true, false, true)) {
 
                 ArchiveEntry entry;
                 while((entry = splitInputStream.getNextEntry()) != null && inputStreamToCompare.getNextEntry() != null) {
@@ -615,7 +615,7 @@
              ZipArchiveInputStream splitInputStream = new ZipArchiveInputStream(inputStream, ZipEncodingHelper.UTF8, true, false, true)) {
 
             final File fileToCompare = getFile("COMPRESS-477/split_zip_created_by_zip/zip_to_compare_created_by_zip_zip64.zip");
-            try (ZipArchiveInputStream inputStreamToCompare = new ZipArchiveInputStream(new FileInputStream(fileToCompare), ZipEncodingHelper.UTF8, true, false, true)) {
+            try (ZipArchiveInputStream inputStreamToCompare = new ZipArchiveInputStream(Files.newInputStream(fileToCompare.toPath()), ZipEncodingHelper.UTF8, true, false, true)) {
 
                 ArchiveEntry entry;
                 while((entry = splitInputStream.getNextEntry()) != null && inputStreamToCompare.getNextEntry() != null) {
@@ -637,7 +637,7 @@
              ZipArchiveInputStream splitInputStream = new ZipArchiveInputStream(inputStream, ZipEncodingHelper.UTF8, true, false, true)) {
 
             final File fileToCompare = getFile("COMPRESS-477/split_zip_created_by_winrar/zip_to_compare_created_by_winrar.zip");
-            try (ZipArchiveInputStream inputStreamToCompare = new ZipArchiveInputStream(new FileInputStream(fileToCompare), ZipEncodingHelper.UTF8, true, false, true)) {
+            try (ZipArchiveInputStream inputStreamToCompare = new ZipArchiveInputStream(Files.newInputStream(fileToCompare.toPath()), ZipEncodingHelper.UTF8, true, false, true)) {
 
                 ArchiveEntry entry;
                 while((entry = splitInputStream.getNextEntry()) != null && inputStreamToCompare.getNextEntry() != null) {
@@ -655,7 +655,7 @@
     public void testSplitZipCreatedByZipThrowsException() throws IOException {
         thrown.expect(EOFException.class);
         final File zipSplitFile = getFile("COMPRESS-477/split_zip_created_by_zip/split_zip_created_by_zip.z01");
-        final InputStream fileInputStream = new FileInputStream(zipSplitFile);
+        final InputStream fileInputStream = Files.newInputStream(zipSplitFile.toPath());
         final ZipArchiveInputStream inputStream = new ZipArchiveInputStream(fileInputStream, ZipEncodingHelper.UTF8, true, false, true);
 
         ArchiveEntry entry = inputStream.getNextEntry();
@@ -697,7 +697,7 @@
 
     @Test(expected = IOException.class)
     public void throwsIOExceptionIfThereIsCorruptedZip64Extra() throws IOException {
-        try (InputStream fis = new FileInputStream(getFile("COMPRESS-546.zip"));
+        try (InputStream fis = Files.newInputStream(getFile("COMPRESS-546.zip").toPath());
              ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(fis)) {
             while (zipInputStream.getNextZipEntry() != null) {
             }
@@ -706,7 +706,7 @@
 
     @Test
     public void testZipWithBadExtraFields() throws IOException {
-        try (InputStream fis = new FileInputStream(getFile("COMPRESS-548.zip"));
+        try (InputStream fis = Files.newInputStream(getFile("COMPRESS-548.zip").toPath());
              ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(fis)) {
             while (zipInputStream.getNextZipEntry() != null) {
             }
@@ -736,7 +736,7 @@
 
     private static void nameSource(final String archive, final String entry, int entryNo, final ZipArchiveEntry.NameSource expected)
         throws Exception {
-        try (ZipArchiveInputStream zis = new ZipArchiveInputStream(new FileInputStream(getFile(archive)))) {
+        try (ZipArchiveInputStream zis = new ZipArchiveInputStream(Files.newInputStream(getFile(archive).toPath()))) {
             ZipArchiveEntry ze;
             do {
                 ze = zis.getNextZipEntry();
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileIgnoringLocalFileHeaderTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileIgnoringLocalFileHeaderTest.java
index 549afa3..a043e8f 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileIgnoringLocalFileHeaderTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileIgnoringLocalFileHeaderTest.java
@@ -27,9 +27,9 @@
 import org.junit.Test;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.Enumeration;
 
 public class ZipFileIgnoringLocalFileHeaderTest {
@@ -55,7 +55,7 @@
         try (final ZipFile zf = openZipWithoutLFH("bla.zip")) {
             for (final Enumeration<ZipArchiveEntry> e = zf.getEntries(); e.hasMoreElements(); ) {
                 final ZipArchiveEntry entry = e.nextElement();
-                try (final OutputStream out = new FileOutputStream(new File(dir, entry.getName()))) {
+                try (final OutputStream out = Files.newOutputStream(new File(dir, entry.getName()).toPath())) {
                     IOUtils.copy(zf.getInputStream(entry), out);
                 }
             }
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
index d2bbe89..f38caa4 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
@@ -29,8 +29,6 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -99,7 +97,7 @@
     @Test
     public void testCDOrderInMemory() throws Exception {
         byte[] data = null;
-        try (FileInputStream fis = new FileInputStream(getFile("ordertest.zip"))) {
+        try (InputStream fis = Files.newInputStream(getFile("ordertest.zip").toPath())) {
             data = IOUtils.toByteArray(fis);
         }
 
@@ -189,7 +187,7 @@
         OutputStream o = null;
         InputStream i = null;
         try {
-            o = new FileOutputStream(f);
+            o = Files.newOutputStream(f.toPath());
             final ZipArchiveOutputStream zo = new ZipArchiveOutputStream(o);
             ZipArchiveEntry ze = new ZipArchiveEntry("foo");
             ze.setMethod(ZipEntry.STORED);
@@ -321,7 +319,7 @@
     public void testUnshrinking() throws Exception {
         zf = new ZipFile(getFile("SHRUNK.ZIP"));
         ZipArchiveEntry test = zf.getEntry("TEST1.XML");
-        FileInputStream original = new FileInputStream(getFile("test1.xml"));
+        InputStream original = Files.newInputStream(getFile("test1.xml").toPath());
         try {
             assertArrayEquals(IOUtils.toByteArray(original),
                               IOUtils.toByteArray(zf.getInputStream(test)));
@@ -329,7 +327,7 @@
             original.close();
         }
         test = zf.getEntry("TEST2.XML");
-        original = new FileInputStream(getFile("test2.xml"));
+        original = Files.newInputStream(getFile("test2.xml").toPath());
         try {
             assertArrayEquals(IOUtils.toByteArray(original),
                               IOUtils.toByteArray(zf.getInputStream(test)));
@@ -368,7 +366,7 @@
     public void testConcurrentReadSeekable() throws Exception {
         // mixed.zip contains both inflated and stored files
         byte[] data = null;
-        try (FileInputStream fis = new FileInputStream(getFile("mixed.zip"))) {
+        try (InputStream fis = Files.newInputStream(getFile("mixed.zip").toPath())) {
             data = IOUtils.toByteArray(fis);
         }
         zf = new ZipFile(new SeekableInMemoryByteChannel(data), ZipEncodingHelper.UTF8);
@@ -624,7 +622,7 @@
     public void readDeflate64CompressedStream() throws Exception {
         final File input = getFile("COMPRESS-380/COMPRESS-380-input");
         final File archive = getFile("COMPRESS-380/COMPRESS-380.zip");
-        try (FileInputStream in = new FileInputStream(input);
+        try (InputStream in = Files.newInputStream(input.toPath());
              ZipFile zf = new ZipFile(archive)) {
             final byte[] orig = IOUtils.toByteArray(in);
             final ZipArchiveEntry e = zf.getEntry("input2");
@@ -790,8 +788,8 @@
         final byte[] testData = new byte[]{1, 2, 3, 4};
         final byte[] buffer = new byte[512];
         int bytesRead;
-        try (InputStream unzipsfxInputStream = new FileInputStream(unzipsfx)) {
-            outputStream = new FileOutputStream(testZip);
+        try (InputStream unzipsfxInputStream = Files.newInputStream(unzipsfx.toPath())) {
+            outputStream = Files.newOutputStream(testZip.toPath());
             final ZipArchiveOutputStream zo = new ZipArchiveOutputStream(outputStream);
 
             while ((bytesRead = unzipsfxInputStream.read(buffer)) > 0) {
@@ -826,7 +824,7 @@
                 fail("Can not find the extracted file");
             }
 
-            inputStream = new FileInputStream(extractedFile);
+            inputStream = Files.newInputStream(extractedFile.toPath());
             bytesRead = IOUtils.readFully(inputStream, buffer);
             assertEquals(testData.length, bytesRead);
             assertArrayEquals(testData, Arrays.copyOfRange(buffer, 0, bytesRead));
@@ -960,7 +958,7 @@
     private void assertFileEqualsToEntry(final File fileToCompare, final ZipArchiveEntry entry, final ZipFile zipFile) throws IOException {
         final byte[] buffer = new byte[10240];
         final File tempFile = File.createTempFile("temp","txt");
-        final OutputStream outputStream = new FileOutputStream(tempFile);
+        final OutputStream outputStream = Files.newOutputStream(tempFile.toPath());
         final InputStream inputStream = zipFile.getInputStream(entry);
         int readLen;
         while((readLen = inputStream.read(buffer)) > 0) {
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStreamTest.java
index 48d3b74..c239bb7 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipSplitOutputStreamTest.java
@@ -24,10 +24,10 @@
 import org.junit.rules.ExpectedException;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.ByteBuffer;
+import java.nio.file.Files;
 
 public class ZipSplitOutputStreamTest extends AbstractTestCase {
     @Rule
@@ -58,7 +58,7 @@
         final File tempFile = File.createTempFile("temp", "zip");
         new ZipSplitOutputStream(tempFile, 100 * 1024L);
 
-        final InputStream inputStream = new FileInputStream(tempFile);
+        final InputStream inputStream = Files.newInputStream(tempFile.toPath());
         final byte[] buffer = new byte[4];
         inputStream.read(buffer);
 
@@ -72,7 +72,7 @@
         final ZipSplitOutputStream zipSplitOutputStream = new ZipSplitOutputStream(testOutputFile, splitSize);
 
         final File fileToTest = getFile("COMPRESS-477/split_zip_created_by_zip/zip_to_compare_created_by_zip.zip");
-        final InputStream inputStream = new FileInputStream(fileToTest);
+        final InputStream inputStream = Files.newInputStream(fileToTest.toPath());
         final byte[] buffer = new byte[4096];
         int readLen;
 
diff --git a/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java b/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java
index 5ec33ab..0b3fb71 100644
--- a/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java
+++ b/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java
@@ -24,10 +24,8 @@
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.InputStream;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -83,8 +81,8 @@
         InputStream in = null;
         InputStream in2 = null;
         try {
-            in = new FileInputStream(getFile("test.txt"));
-            in2 = new FileInputStream(getFile("test2.xml"));
+            in = Files.newInputStream(getFile("test.txt").toPath());
+            in2 = Files.newInputStream(getFile("test2.xml").toPath());
 
             final ArchiveEntry e = new ZipArchiveEntry("test.txt");
             final ArchiveEntry e2 = new ZipArchiveEntry("test.txt");
@@ -118,8 +116,8 @@
         InputStream in = null;
         InputStream in2 = null;
         try {
-            in = new FileInputStream(getFile("test.txt"));
-            in2 = new FileInputStream(getFile("test2.xml"));
+            in = Files.newInputStream(getFile("test.txt").toPath());
+            in2 = Files.newInputStream(getFile("test2.xml").toPath());
 
             final ArchiveEntry e = new ZipArchiveEntry("test.txt");
             final ArchiveEntry e2 = new ZipArchiveEntry("test.txt");
@@ -160,11 +158,11 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.deleteDir("bla");
@@ -202,11 +200,11 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.deleteDir("la");
@@ -244,11 +242,11 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.deleteDir("test.txt");
@@ -286,11 +284,11 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.delete("bla/test5.xml");
@@ -329,11 +327,11 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.delete("bla");
@@ -375,10 +373,10 @@
         File testtxt = null;
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.delete("test/test3.xml");
@@ -387,7 +385,7 @@
             // Add a file
             testtxt = getFile("test.txt");
             final ArchiveEntry entry = out.createArchiveEntry(testtxt, "test/test3.xml");
-            changes.add(entry, new FileInputStream(testtxt));
+            changes.add(entry, Files.newInputStream(testtxt.toPath()));
             archiveList.add("test/test3.xml");
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
@@ -407,14 +405,14 @@
         ArchiveInputStream in = null;
         File check = null;
         try {
-            final InputStream is = new FileInputStream(result);
+            final InputStream is = Files.newInputStream(result.toPath());
             final BufferedInputStream buf = new BufferedInputStream(is);
             in = factory.createArchiveInputStream(buf);
             check = this.checkArchiveContent(in, archiveList, false);
             final File test3xml = new File(check,"result/test/test3.xml");
             assertEquals(testtxt.length(), test3xml.length());
 
-            final BufferedReader reader = new BufferedReader(new FileReader(test3xml));
+            final BufferedReader reader = new BufferedReader(Files.newBufferedReader(test3xml.toPath()));
             String str;
             while ((str = reader.readLine()) != null) {
                 // All lines look like this
@@ -445,10 +443,10 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.deleteDir("bla");
@@ -457,7 +455,7 @@
             // Add a file
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = out.createArchiveEntry(file1, "bla/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
             archiveList.add("bla/test.txt");
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
@@ -509,10 +507,10 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
             changes.deleteDir("bla");
@@ -521,7 +519,7 @@
             // Add a file
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = out.createArchiveEntry(file1, "bla/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
             archiveList.add("bla/test.txt");
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
@@ -556,16 +554,16 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
 
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = new ZipArchiveEntry("blub/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
             archiveList.add("blub/test.txt");
 
             changes.delete("testdata/test1.xml");
@@ -605,13 +603,13 @@
 
             ais = new ZipFile(input);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
 
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = new ZipArchiveEntry("blub/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
             archiveList.add("blub/test.txt");
 
             changes.delete("testdata/test1.xml");
@@ -649,16 +647,16 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
 
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = new CpioArchiveEntry("blub/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
             archiveList.add("blub/test.txt");
 
             changes.deleteDir("blub");
@@ -698,10 +696,10 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
 
@@ -709,7 +707,7 @@
 
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = new CpioArchiveEntry("bla/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
             archiveList.add("bla/test.txt");
 
             changes.deleteDir("bla");
@@ -747,13 +745,13 @@
             changes.delete("test2.xml");
 
             final File input = getFile("bla.zip");
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream("zip", is);
 
             temp = File.createTempFile("test", ".zip");
             temp.deleteOnExit();
             out = factory.createArchiveOutputStream("zip",
-                    new FileOutputStream(temp));
+                    Files.newOutputStream(temp.toPath()));
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -788,12 +786,12 @@
             changes.delete("test2.xml");
 
             final File input = getFile("bla.tar");
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream("tar", is);
 
             temp = new File(dir, "bla.tar");
             out = factory.createArchiveOutputStream("tar",
-                    new FileOutputStream(temp));
+                    Files.newOutputStream(temp.toPath()));
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -829,12 +827,12 @@
             changes.delete(".project");
 
             final File input = getFile("bla.jar");
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream("jar", is);
 
             temp = new File(dir, "bla.jar");
             out = factory.createArchiveOutputStream("jar",
-                    new FileOutputStream(temp));
+                    Files.newOutputStream(temp.toPath()));
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -873,15 +871,15 @@
             entry.setGroupName("excalibur");
             entry.setMode(0100000);
 
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
 
             final File input = getFile("bla.tar");
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream("tar", is);
 
             temp = new File(dir, "bla.tar");
             out = factory.createArchiveOutputStream("tar",
-                    new FileOutputStream(temp));
+                    Files.newOutputStream(temp.toPath()));
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -897,7 +895,7 @@
         final List<String> expected = new ArrayList<>();
         expected.add("test1.xml");
         expected.add("testdata/test.txt");
-        final ArchiveInputStream in = factory.createArchiveInputStream("tar", new FileInputStream(temp));
+        final ArchiveInputStream in = factory.createArchiveInputStream("tar", Files.newInputStream(temp.toPath()));
         this.checkArchiveContent(in, expected);
     }
 
@@ -920,15 +918,15 @@
 
             final File file1 = getFile("test.txt");
             final JarArchiveEntry entry = new JarArchiveEntry("testdata/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
 
             final File input = getFile("bla.jar");
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream("jar", is);
 
             temp = new File(dir, "bla.jar");
             out = factory.createArchiveOutputStream("jar",
-                    new FileOutputStream(temp));
+                    Files.newOutputStream(temp.toPath()));
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -962,12 +960,12 @@
             changes.delete("test2.xml");
 
             final File input = getFile("bla.ar");
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream("ar", is);
 
             temp = new File(dir, "bla.ar");
             out = factory.createArchiveOutputStream("ar",
-                    new FileOutputStream(temp));
+                    Files.newOutputStream(temp.toPath()));
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -1005,15 +1003,15 @@
             final ArArchiveEntry entry = new ArArchiveEntry("test.txt", file1
                     .length());
 
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
 
             final File input = getFile("bla.ar");
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream("ar", is);
 
             temp = new File(dir, "bla.ar");
             out = factory.createArchiveOutputStream("ar",
-                    new FileOutputStream(temp));
+                    Files.newOutputStream(temp.toPath()));
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -1076,15 +1074,15 @@
         final ChangeSet changes = new ChangeSet();
         try {
 
-            is = new FileInputStream(input);
+            is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = new ZipArchiveEntry("bla/test.txt");
-            changes.add(entry, new FileInputStream(file1));
+            changes.add(entry, Files.newInputStream(file1.toPath()));
             archiveList.add("bla/test.txt");
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             performer.perform(ais, out);
@@ -1122,17 +1120,17 @@
         final ChangeSet changes = new ChangeSet();
         try {
 
-            is = new FileInputStream(input);
+            is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
             changes.delete("test1.xml");
             archiveListDelete("test1.xml");
 
             final File file = getFile("test.txt");
             final ArchiveEntry entry = out.createArchiveEntry(file,"bla/test.txt");
-            changes.add(entry, new FileInputStream(file));
+            changes.add(entry, Files.newInputStream(file.toPath()));
             archiveList.add("bla/test.txt");
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
@@ -1171,14 +1169,14 @@
         final ChangeSet changes = new ChangeSet();
         try {
 
-            is = new FileInputStream(input);
+            is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
 
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
             final File file = getFile("test.txt");
             final ArchiveEntry entry = out.createArchiveEntry(file,"bla/test.txt");
-            changes.add(entry, new FileInputStream(file));
+            changes.add(entry, Files.newInputStream(file.toPath()));
             archiveList.add("bla/test.txt");
 
             changes.delete("test1.xml");
@@ -1219,16 +1217,16 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
 
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = new ZipArchiveEntry("testdata/test1.xml");
-            changes.add(entry, new FileInputStream(file1), true);
+            changes.add(entry, Files.newInputStream(file1.toPath()), true);
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             final ChangeSetResults results = performer.perform(ais, out);
@@ -1264,16 +1262,16 @@
         result.deleteOnExit();
         try {
 
-            final InputStream is = new FileInputStream(input);
+            final InputStream is = Files.newInputStream(input.toPath());
             ais = factory.createArchiveInputStream(archivename, is);
             out = factory.createArchiveOutputStream(archivename,
-                    new FileOutputStream(result));
+                    Files.newOutputStream(result.toPath()));
 
             final ChangeSet changes = new ChangeSet();
 
             final File file1 = getFile("test.txt");
             final ArchiveEntry entry = new ZipArchiveEntry("testdata/test1.xml");
-            changes.add(entry, new FileInputStream(file1), false);
+            changes.add(entry, Files.newInputStream(file1.toPath()), false);
 
             final ChangeSetPerformer performer = new ChangeSetPerformer(changes);
             final ChangeSetResults results = performer.perform(ais, out);
diff --git a/src/test/java/org/apache/commons/compress/compressors/BZip2TestCase.java b/src/test/java/org/apache/commons/compress/compressors/BZip2TestCase.java
index e3b15d6..797283a 100644
--- a/src/test/java/org/apache/commons/compress/compressors/BZip2TestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/BZip2TestCase.java
@@ -21,10 +21,9 @@
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
@@ -39,9 +38,9 @@
         final File input = getFile("test.txt");
         {
             output = new File(dir, "test.txt.bz2");
-            final OutputStream out = new FileOutputStream(output);
+            final OutputStream out = Files.newOutputStream(output.toPath());
             final CompressorOutputStream cos = new CompressorStreamFactory().createCompressorOutputStream("bzip2", out);
-            final FileInputStream in = new FileInputStream(input);
+            final InputStream in = Files.newInputStream(input.toPath());
             IOUtils.copy(in, cos);
             cos.close();
             in.close();
@@ -50,10 +49,10 @@
         final File decompressed = new File(dir, "decompressed.txt");
         {
             final File toDecompress = output;
-            final InputStream is = new FileInputStream(toDecompress);
+            final InputStream is = Files.newInputStream(toDecompress.toPath());
             final CompressorInputStream in =
                 new CompressorStreamFactory().createCompressorInputStream("bzip2", is);
-            final FileOutputStream os = new FileOutputStream(decompressed);
+            final OutputStream os = Files.newOutputStream(decompressed.toPath());
             IOUtils.copy(in, os);
             is.close();
             os.close();
@@ -66,9 +65,9 @@
     public void testBzip2Unarchive() throws Exception {
         final File input = getFile("bla.txt.bz2");
         final File output = new File(dir, "bla.txt");
-        final InputStream is = new FileInputStream(input);
+        final InputStream is = Files.newInputStream(input.toPath());
         final CompressorInputStream in = new CompressorStreamFactory().createCompressorInputStream("bzip2", is);
-        final FileOutputStream os = new FileOutputStream(output);
+        final OutputStream os = Files.newOutputStream(output.toPath());
         IOUtils.copy(in, os);
         is.close();
         os.close();
@@ -77,7 +76,7 @@
     @Test
     public void testConcatenatedStreamsReadFirstOnly() throws Exception {
         final File input = getFile("multiple.bz2");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("bzip2", is)) {
                 assertEquals('a', in.read());
@@ -89,7 +88,7 @@
     @Test
     public void testConcatenatedStreamsReadFully() throws Exception {
         final File input = getFile("multiple.bz2");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new BZip2CompressorInputStream(is, true)) {
                 assertEquals('a', in.read());
                 assertEquals('b', in.read());
@@ -102,7 +101,7 @@
     @Test
     public void testCOMPRESS131() throws Exception {
         final File input = getFile("COMPRESS-131.bz2");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new BZip2CompressorInputStream(is, true)) {
                 int l = 0;
                 while (in.read() != -1) {
diff --git a/src/test/java/org/apache/commons/compress/compressors/DeflateTestCase.java b/src/test/java/org/apache/commons/compress/compressors/DeflateTestCase.java
index c4e4a09..7d68692 100644
--- a/src/test/java/org/apache/commons/compress/compressors/DeflateTestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/DeflateTestCase.java
@@ -19,10 +19,9 @@
 package org.apache.commons.compress.compressors;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.deflate.DeflateCompressorInputStream;
@@ -42,10 +41,10 @@
     public void testDeflateCreation()  throws Exception {
         final File input = getFile("test1.xml");
         final File output = new File(dir, "test1.xml.deflatez");
-        try (OutputStream out = new FileOutputStream(output)) {
+        try (OutputStream out = Files.newOutputStream(output.toPath())) {
             try (CompressorOutputStream cos = new CompressorStreamFactory()
                     .createCompressorOutputStream("deflate", out)) {
-                IOUtils.copy(new FileInputStream(input), cos);
+                IOUtils.copy(Files.newInputStream(input.toPath()), cos);
             }
         }
     }
@@ -59,11 +58,11 @@
     public void testRawDeflateCreation()  throws Exception {
         final File input = getFile("test1.xml");
         final File output = new File(dir, "test1.xml.deflate");
-        try (OutputStream out = new FileOutputStream(output)) {
+        try (OutputStream out = Files.newOutputStream(output.toPath())) {
             final DeflateParameters params = new DeflateParameters();
             params.setWithZlibHeader(false);
             try (CompressorOutputStream cos = new DeflateCompressorOutputStream(out, params)) {
-                IOUtils.copy(new FileInputStream(input), cos);
+                IOUtils.copy(Files.newInputStream(input.toPath()), cos);
             }
         }
     }
@@ -77,11 +76,11 @@
     public void testDeflateUnarchive() throws Exception {
         final File input = getFile("bla.tar.deflatez");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
              // zlib header is expected by default
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("deflate", is);
-                    FileOutputStream out = new FileOutputStream(output)) {
+                    OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
@@ -96,11 +95,11 @@
     public void testRawDeflateUnarchive() throws Exception {
         final File input = getFile("bla.tar.deflate");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final DeflateParameters params = new DeflateParameters();
             params.setWithZlibHeader(false);
             try (CompressorInputStream in = new DeflateCompressorInputStream(is, params);
-                    FileOutputStream out = new FileOutputStream(output)) {
+                    OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
diff --git a/src/test/java/org/apache/commons/compress/compressors/DetectCompressorTestCase.java b/src/test/java/org/apache/commons/compress/compressors/DetectCompressorTestCase.java
index 1f04922..cfa11e7 100644
--- a/src/test/java/org/apache/commons/compress/compressors/DetectCompressorTestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/DetectCompressorTestCase.java
@@ -27,9 +27,9 @@
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.MemoryLimitException;
 import org.apache.commons.compress.MockEvilInputStream;
@@ -172,7 +172,7 @@
     private String detect(final String testFileName) throws IOException, CompressorException {
         String name = null;
         try (InputStream is = new BufferedInputStream(
-                new FileInputStream(getFile(testFileName)))) {
+                Files.newInputStream(getFile(testFileName).toPath()))) {
             name = CompressorStreamFactory.detect(is);
         }
         return name;
@@ -212,7 +212,7 @@
         final CompressorStreamFactory fac = new CompressorStreamFactory(true,
                 memoryLimitInKb);
         final InputStream is = new BufferedInputStream(
-                new FileInputStream(getFile(fileName)));
+                Files.newInputStream(getFile(fileName).toPath()));
         try {
             return fac.createCompressorInputStream(is);
         } catch (final CompressorException e) {
@@ -272,14 +272,14 @@
     private CompressorInputStream getStreamFor(final String resource)
             throws CompressorException, IOException {
         return factory.createCompressorInputStream(
-                   new BufferedInputStream(new FileInputStream(
-                       getFile(resource))));
+                   new BufferedInputStream(Files.newInputStream(
+                       getFile(resource).toPath())));
     }
 
     private CompressorInputStream getStreamFor(final String resource, final CompressorStreamFactory factory)
             throws CompressorException, IOException {
         return factory.createCompressorInputStream(
-                   new BufferedInputStream(new FileInputStream(
-                       getFile(resource))));
+                   new BufferedInputStream(Files.newInputStream(
+                       getFile(resource).toPath())));
     }
 }
diff --git a/src/test/java/org/apache/commons/compress/compressors/FramedSnappyTestCase.java b/src/test/java/org/apache/commons/compress/compressors/FramedSnappyTestCase.java
index 8e7dba6..4dd0e10 100644
--- a/src/test/java/org/apache/commons/compress/compressors/FramedSnappyTestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/FramedSnappyTestCase.java
@@ -23,8 +23,9 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.Random;
 
 import org.apache.commons.compress.AbstractTestCase;
@@ -55,18 +56,18 @@
     private void testUnarchive(final StreamWrapper<CompressorInputStream> wrapper) throws Exception {
         final File input = getFile("bla.tar.sz");
         final File output = new File(dir, "bla.tar");
-        try (FileInputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             // the intermediate BufferedInputStream is there for mark
             // support in the autodetection test
             try (CompressorInputStream in = wrapper.wrap(new BufferedInputStream(is));
-                    FileOutputStream out = new FileOutputStream(output)) {
+                    OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
                 assertEquals(995, in.getBytesRead());
             }
         }
         final File original = getFile("bla.tar");
-        try (FileInputStream written = new FileInputStream(output)) {
-            try (FileInputStream orig = new FileInputStream(original)) {
+        try (InputStream written = Files.newInputStream(output.toPath())) {
+            try (InputStream orig = Files.newInputStream(original.toPath())) {
                 assertArrayEquals(IOUtils.toByteArray(written),
                         IOUtils.toByteArray(orig));
             }
@@ -84,15 +85,15 @@
     public void testRoundtripWithOneBigWrite() throws Exception {
         final Random r = new Random();
         final File input = new File(dir, "bigChunkTest");
-        try (FileOutputStream fs = new FileOutputStream(input)) {
+        try (OutputStream fs = Files.newOutputStream(input.toPath())) {
             for (int i = 0 ; i < 1 << 17; i++) {
                 fs.write(r.nextInt(256));
             }
         }
         final long start = System.currentTimeMillis();
         final File outputSz = new File(dir, input.getName() + ".sz");
-        try (FileInputStream is = new FileInputStream(input);
-             FileOutputStream os = new FileOutputStream(outputSz);
+        try (InputStream is = Files.newInputStream(input.toPath());
+             OutputStream os = Files.newOutputStream(outputSz.toPath());
              CompressorOutputStream sos = new CompressorStreamFactory()
                  .createCompressorOutputStream("snappy-framed", os)) {
             final byte[] b = IOUtils.toByteArray(is);
@@ -101,9 +102,9 @@
         }
         System.err.println(input.getName() + " written, uncompressed bytes: " + input.length()
             + ", compressed bytes: " + outputSz.length() + " after " + (System.currentTimeMillis() - start) + "ms");
-        try (FileInputStream is = new FileInputStream(input);
+        try (InputStream is = Files.newInputStream(input.toPath());
              CompressorInputStream sis = new CompressorStreamFactory()
-                 .createCompressorInputStream("snappy-framed", new FileInputStream(outputSz))) {
+                 .createCompressorInputStream("snappy-framed", Files.newInputStream(outputSz.toPath()))) {
             final byte[] expected = IOUtils.toByteArray(is);
             final byte[] actual = IOUtils.toByteArray(sis);
             assertArrayEquals(expected, actual);
@@ -113,17 +114,17 @@
     private void testRoundtrip(final File input)  throws Exception {
         final long start = System.currentTimeMillis();
         final File outputSz = new File(dir, input.getName() + ".sz");
-        try (FileInputStream is = new FileInputStream(input);
-             FileOutputStream os = new FileOutputStream(outputSz);
+        try (InputStream is = Files.newInputStream(input.toPath());
+             OutputStream os = Files.newOutputStream(outputSz.toPath());
              CompressorOutputStream sos = new CompressorStreamFactory()
                  .createCompressorOutputStream("snappy-framed", os)) {
             IOUtils.copy(is, sos);
         }
         System.err.println(input.getName() + " written, uncompressed bytes: " + input.length()
             + ", compressed bytes: " + outputSz.length() + " after " + (System.currentTimeMillis() - start) + "ms");
-        try (FileInputStream is = new FileInputStream(input);
+        try (InputStream is = Files.newInputStream(input.toPath());
              CompressorInputStream sis = new CompressorStreamFactory()
-                 .createCompressorInputStream("snappy-framed", new FileInputStream(outputSz))) {
+                 .createCompressorInputStream("snappy-framed", Files.newInputStream(outputSz.toPath()))) {
             final byte[] expected = IOUtils.toByteArray(is);
             final byte[] actual = IOUtils.toByteArray(sis);
             assertArrayEquals(expected, actual);
diff --git a/src/test/java/org/apache/commons/compress/compressors/GZipTestCase.java b/src/test/java/org/apache/commons/compress/compressors/GZipTestCase.java
index ca41d14..2ba4b2b 100644
--- a/src/test/java/org/apache/commons/compress/compressors/GZipTestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/GZipTestCase.java
@@ -24,11 +24,10 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.zip.Deflater;
 import java.util.zip.GZIPInputStream;
 
@@ -46,10 +45,10 @@
     public void testGzipCreation()  throws Exception {
         final File input = getFile("test1.xml");
         final File output = new File(dir, "test1.xml.gz");
-        try (OutputStream out = new FileOutputStream(output)) {
+        try (OutputStream out = Files.newOutputStream(output.toPath())) {
             try (CompressorOutputStream cos = new CompressorStreamFactory()
                     .createCompressorOutputStream("gz", out)) {
-                IOUtils.copy(new FileInputStream(input), cos);
+                IOUtils.copy(Files.newInputStream(input.toPath()), cos);
             }
         }
     }
@@ -58,10 +57,10 @@
     public void testGzipUnarchive() throws Exception {
         final File input = getFile("bla.tgz");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("gz", is);
-                    FileOutputStream out = new FileOutputStream(output)) {
+                    OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
@@ -70,7 +69,7 @@
     @Test
     public void testConcatenatedStreamsReadFirstOnly() throws Exception {
         final File input = getFile("multiple.gz");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("gz", is)) {
                 assertEquals('a', in.read());
@@ -82,7 +81,7 @@
     @Test
     public void testConcatenatedStreamsReadFully() throws Exception {
         final File input = getFile("multiple.gz");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new GzipCompressorInputStream(is, true)) {
                 assertEquals('a', in.read());
                 assertEquals('b', in.read());
@@ -101,7 +100,7 @@
         OutputStream out = null;
         CompressorInputStream cin = null;
         try {
-            in = new FileInputStream(getFile("bla.tgz"));
+            in = Files.newInputStream(getFile("bla.tgz").toPath());
             out = new ByteArrayOutputStream();
             IOUtils.copy(in, out);
             in.close();
@@ -136,7 +135,7 @@
     @Test
     public void testInteroperabilityWithGzipCompressorInputStream() throws Exception {
         final byte[] content;
-        try (FileInputStream fis = new FileInputStream(getFile("test3.xml"))) {
+        try (InputStream fis = Files.newInputStream(getFile("test3.xml").toPath())) {
             content = IOUtils.toByteArray(fis);
         }
 
@@ -162,7 +161,7 @@
     @Test
     public void testInteroperabilityWithGZIPInputStream() throws Exception {
         final byte[] content;
-        try (FileInputStream fis = new FileInputStream(getFile("test3.xml"))) {
+        try (InputStream fis = Files.newInputStream(getFile("test3.xml").toPath())) {
             content = IOUtils.toByteArray(fis);
         }
 
@@ -205,7 +204,7 @@
 
     private void testExtraFlags(final int compressionLevel, final int flag) throws Exception {
         final byte[] content;
-        try (FileInputStream fis = new FileInputStream(getFile("test3.xml"))) {
+        try (InputStream fis = Files.newInputStream(getFile("test3.xml").toPath())) {
             content = IOUtils.toByteArray(fis);
         }
 
@@ -258,8 +257,8 @@
         parameters.setOperatingSystem(13);
         parameters.setFilename("test3.xml");
         parameters.setComment("Umlaute möglich?");
-        try (GzipCompressorOutputStream out = new GzipCompressorOutputStream(bout, parameters); FileInputStream fis = new FileInputStream(getFile("test3" +
-                ".xml"))) {
+        try (GzipCompressorOutputStream out = new GzipCompressorOutputStream(bout, parameters); InputStream fis = Files.newInputStream(getFile("test3" +
+                ".xml").toPath())) {
             IOUtils.copy(fis, out);
         }
 
@@ -277,7 +276,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tgz");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final GzipCompressorInputStream in =
                     new GzipCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -291,7 +290,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tgz");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final GzipCompressorInputStream in =
                     new GzipCompressorInputStream(is);
             IOUtils.toByteArray(in);
diff --git a/src/test/java/org/apache/commons/compress/compressors/LZMATestCase.java b/src/test/java/org/apache/commons/compress/compressors/LZMATestCase.java
index f5ea231..8bd79f6 100644
--- a/src/test/java/org/apache/commons/compress/compressors/LZMATestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/LZMATestCase.java
@@ -20,11 +20,10 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.lzma.LZMACompressorInputStream;
@@ -38,18 +37,18 @@
     public void lzmaRoundtrip() throws Exception {
         final File input = getFile("test1.xml");
         final File compressed = new File(dir, "test1.xml.xz");
-        try (OutputStream out = new FileOutputStream(compressed)) {
+        try (OutputStream out = Files.newOutputStream(compressed.toPath())) {
             try (CompressorOutputStream cos = new CompressorStreamFactory()
                     .createCompressorOutputStream("lzma", out)) {
-                IOUtils.copy(new FileInputStream(input), cos);
+                IOUtils.copy(Files.newInputStream(input.toPath()), cos);
             }
         }
         byte[] orig;
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             orig = IOUtils.toByteArray(is);
         }
         final byte[] uncompressed;
-        try (InputStream is = new FileInputStream(compressed);
+        try (InputStream is = Files.newInputStream(compressed.toPath());
              CompressorInputStream in = new LZMACompressorInputStream(is)) {
             uncompressed = IOUtils.toByteArray(in);
         }
@@ -60,7 +59,7 @@
     public void testLZMAUnarchive() throws Exception {
         final File input = getFile("bla.tar.lzma");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final CompressorInputStream in = new LZMACompressorInputStream(is);
             copy(in, output);
         }
@@ -70,7 +69,7 @@
     public void testLZMAUnarchiveWithAutodetection() throws Exception {
         final File input = getFile("bla.tar.lzma");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new BufferedInputStream(new FileInputStream(input))) {
+        try (InputStream is = new BufferedInputStream(Files.newInputStream(input.toPath()))) {
             final CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream(is);
             copy(in, output);
@@ -80,7 +79,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.lzma");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final LZMACompressorInputStream in =
                     new LZMACompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -94,7 +93,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.lzma");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final LZMACompressorInputStream in =
                     new LZMACompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -105,7 +104,7 @@
     }
 
     private void copy(final InputStream in, final File output) throws IOException {
-        try (FileOutputStream out = new FileOutputStream(output)) {
+        try (OutputStream out = Files.newOutputStream(output.toPath())) {
             IOUtils.copy(in, out);
         } finally {
             in.close();
diff --git a/src/test/java/org/apache/commons/compress/compressors/Pack200TestCase.java b/src/test/java/org/apache/commons/compress/compressors/Pack200TestCase.java
index 058a69b..f1667e5 100644
--- a/src/test/java/org/apache/commons/compress/compressors/Pack200TestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/Pack200TestCase.java
@@ -23,10 +23,9 @@
 import static org.junit.Assert.assertTrue;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -71,7 +70,7 @@
         final File input = getFile("bla.pack");
         try (InputStream is = useFile
                 ? new Pack200CompressorInputStream(input, mode)
-                : new Pack200CompressorInputStream(new FileInputStream(input),
+                : new Pack200CompressorInputStream(Files.newInputStream(input.toPath()),
                 mode)) {
             final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT
                     .createArchiveInputStream("jar", is);
@@ -85,7 +84,7 @@
                     entry = in.getNextEntry();
                     continue;
                 }
-                final OutputStream out = new FileOutputStream(archiveEntry);
+                final OutputStream out = Files.newOutputStream(archiveEntry.toPath());
                 IOUtils.copy(in, out);
                 out.close();
                 entry = in.getNextEntry();
@@ -111,17 +110,17 @@
         final File file1 = getFile("test1.xml");
         final File file2 = getFile("test2.xml");
 
-        try (OutputStream out = new Pack200CompressorOutputStream(new FileOutputStream(output),
+        try (OutputStream out = new Pack200CompressorOutputStream(Files.newOutputStream(output.toPath()),
                 mode)) {
             final ArchiveOutputStream os = ArchiveStreamFactory.DEFAULT
                     .createArchiveOutputStream("jar", out);
 
             os.putArchiveEntry(new ZipArchiveEntry("testdata/test1.xml"));
-            IOUtils.copy(new FileInputStream(file1), os);
+            IOUtils.copy(Files.newInputStream(file1.toPath()), os);
             os.closeArchiveEntry();
 
             os.putArchiveEntry(new ZipArchiveEntry("testdata/test2.xml"));
-            IOUtils.copy(new FileInputStream(file2), os);
+            IOUtils.copy(Files.newInputStream(file2.toPath()), os);
             os.closeArchiveEntry();
 
             os.close();
@@ -140,7 +139,7 @@
 
     @Test
     public void testGoodSignature() throws Exception {
-        try (InputStream is = new FileInputStream(getFile("bla.pack"))) {
+        try (InputStream is = Files.newInputStream(getFile("bla.pack").toPath())) {
             final byte[] sig = new byte[4];
             is.read(sig);
             assertTrue(Pack200CompressorInputStream.matches(sig, 4));
@@ -149,7 +148,7 @@
 
     @Test
     public void testBadSignature() throws Exception {
-        try (InputStream is = new FileInputStream(getFile("bla.jar"))) {
+        try (InputStream is = Files.newInputStream(getFile("bla.jar").toPath())) {
             final byte[] sig = new byte[4];
             is.read(sig);
             assertFalse(Pack200CompressorInputStream.matches(sig, 4));
@@ -158,7 +157,7 @@
 
     @Test
     public void testShortSignature() throws Exception {
-        try (InputStream is = new FileInputStream(getFile("bla.pack"))) {
+        try (InputStream is = Files.newInputStream(getFile("bla.pack").toPath())) {
             final byte[] sig = new byte[2];
             is.read(sig);
             assertFalse(Pack200CompressorInputStream.matches(sig, 2));
@@ -169,7 +168,7 @@
     public void testInputStreamMethods() throws Exception {
         final Map<String, String> m = new HashMap<>();
         m.put("foo", "bar");
-        try (InputStream is = new Pack200CompressorInputStream(new FileInputStream(getFile("bla.jar")),
+        try (InputStream is = new Pack200CompressorInputStream(Files.newInputStream(getFile("bla.jar").toPath()),
                 m)) {
             // packed file is a jar, which is a zip so it starts with
             // a local file header
@@ -193,7 +192,7 @@
         final File output = new File(dir, "bla.pack");
         final Map<String, String> m = new HashMap<>();
         m.put("foo", "bar");
-        try (OutputStream out = new FileOutputStream(output)) {
+        try (OutputStream out = Files.newOutputStream(output.toPath())) {
             final OutputStream os = new Pack200CompressorOutputStream(out, m);
             os.write(1);
             os.write(new byte[] { 2, 3 });
diff --git a/src/test/java/org/apache/commons/compress/compressors/XZTestCase.java b/src/test/java/org/apache/commons/compress/compressors/XZTestCase.java
index 49079d5..67b78a0 100644
--- a/src/test/java/org/apache/commons/compress/compressors/XZTestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/XZTestCase.java
@@ -21,11 +21,10 @@
 import static org.junit.Assert.assertEquals;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.lang.management.ManagementFactory;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
@@ -40,10 +39,10 @@
         System.out.println("XZTestCase: HeapMax="+max+" bytes "+(double)max/(1024*1024)+" MB");
         final File input = getFile("test1.xml");
         final File output = new File(dir, "test1.xml.xz");
-        try (OutputStream out = new FileOutputStream(output)) {
+        try (OutputStream out = Files.newOutputStream(output.toPath())) {
             try (CompressorOutputStream cos = new CompressorStreamFactory()
                     .createCompressorOutputStream("xz", out)) {
-                IOUtils.copy(new FileInputStream(input), cos);
+                IOUtils.copy(Files.newInputStream(input.toPath()), cos);
             }
         }
     }
@@ -52,10 +51,10 @@
     public void testXZUnarchive() throws Exception {
         final File input = getFile("bla.tar.xz");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("xz", is);
-                    FileOutputStream out = new FileOutputStream(output)) {
+                    OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
@@ -64,7 +63,7 @@
     @Test
     public void testConcatenatedStreamsReadFirstOnly() throws Exception {
         final File input = getFile("multiple.xz");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("xz", is)) {
                 assertEquals('a', in.read());
@@ -76,7 +75,7 @@
     @Test
     public void testConcatenatedStreamsReadFully() throws Exception {
         final File input = getFile("multiple.xz");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new XZCompressorInputStream(is, true)) {
                 assertEquals('a', in.read());
                 assertEquals('b', in.read());
diff --git a/src/test/java/org/apache/commons/compress/compressors/ZTestCase.java b/src/test/java/org/apache/commons/compress/compressors/ZTestCase.java
index 705ff36..0a51cab 100644
--- a/src/test/java/org/apache/commons/compress/compressors/ZTestCase.java
+++ b/src/test/java/org/apache/commons/compress/compressors/ZTestCase.java
@@ -23,9 +23,9 @@
 
 import java.io.BufferedInputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.z.ZCompressorInputStream;
@@ -66,9 +66,9 @@
     private void testUnarchive(final StreamWrapper<CompressorInputStream> wrapper) throws Exception {
         final File input = getFile("bla.tar.Z");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (InputStream in = wrapper.wrap(is);
-                    FileOutputStream out = new FileOutputStream(output)) {
+                    OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
diff --git a/src/test/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStreamTest.java
index 51e7cea..7ebaf28 100644
--- a/src/test/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/brotli/BrotliCompressorInputStreamTest.java
@@ -22,10 +22,10 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.CompressorInputStream;
@@ -44,7 +44,7 @@
     public void testBrotliDecode() throws IOException {
         final File input = getFile("brotli.testdata.compressed");
         final File expected = getFile("brotli.testdata.uncompressed");
-        try (InputStream inputStream = new FileInputStream(input);
+        try (InputStream inputStream = Files.newInputStream(input.toPath());
             BrotliCompressorInputStream brotliInputStream = new BrotliCompressorInputStream(inputStream)) {
             final byte[] b = new byte[20];
             IOUtils.read(expected, b);
@@ -90,7 +90,7 @@
     @Test
     public void availableShouldReturnZero() throws IOException {
         final File input = getFile("brotli.testdata.compressed");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BrotliCompressorInputStream in =
                     new BrotliCompressorInputStream(is);
             Assert.assertTrue(in.available() == 0);
@@ -101,7 +101,7 @@
     @Test
     public void shouldBeAbleToSkipAByte() throws IOException {
         final File input = getFile("brotli.testdata.compressed");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BrotliCompressorInputStream in =
                     new BrotliCompressorInputStream(is);
             Assert.assertEquals(1, in.skip(1));
@@ -112,7 +112,7 @@
     @Test
     public void singleByteReadWorksAsExpected() throws IOException {
         final File input = getFile("brotli.testdata.compressed");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BrotliCompressorInputStream in =
                     new BrotliCompressorInputStream(is);
             //  starts with filename "XXX"
@@ -124,7 +124,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("brotli.testdata.compressed");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BrotliCompressorInputStream in =
                     new BrotliCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -138,7 +138,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("brotli.testdata.compressed");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BrotliCompressorInputStream in =
                     new BrotliCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -152,10 +152,10 @@
     public void testBrotliUnarchive() throws Exception {
         final File input = getFile("bla.tar.br");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("br", is);
-                    FileOutputStream out = new FileOutputStream(output)) {
+                    OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
diff --git a/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStreamTest.java
index af5028c..7822081 100644
--- a/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2CompressorInputStreamTest.java
@@ -23,9 +23,10 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
+
 import org.apache.commons.compress.archivers.ArchiveInputStream;
 import org.apache.commons.compress.archivers.ArchiveStreamFactory;
 import org.apache.commons.compress.utils.IOUtils;
@@ -36,7 +37,7 @@
 
     @Test(expected = IOException.class)
     public void shouldThrowAnIOExceptionWhenAppliedToAZipFile() throws Exception {
-        try (FileInputStream in = new FileInputStream(getFile("bla.zip"))) {
+        try (InputStream in = Files.newInputStream(getFile("bla.zip").toPath())) {
             final BZip2CompressorInputStream bis = new BZip2CompressorInputStream(in);
             bis.close();
         }
@@ -75,7 +76,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.txt.bz2");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BZip2CompressorInputStream in =
                     new BZip2CompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -89,7 +90,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.txt.bz2");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BZip2CompressorInputStream in =
                     new BZip2CompressorInputStream(is);
             IOUtils.toByteArray(in);
diff --git a/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2NSelectorsOverflowTest.java b/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2NSelectorsOverflowTest.java
index a892688..de35631 100644
--- a/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2NSelectorsOverflowTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/bzip2/BZip2NSelectorsOverflowTest.java
@@ -22,8 +22,8 @@
 import org.junit.Test;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.InputStream;
+import java.nio.file.Files;
 
 import static org.junit.Assert.assertEquals;
 
@@ -35,7 +35,7 @@
     @Test
     public void shouldDecompressBlockWithNSelectorOverflow() throws Exception {
         final File toDecompress = getFile("lbzip2_32767.bz2");
-        try (final InputStream is = new FileInputStream(toDecompress);
+        try (final InputStream is = Files.newInputStream(toDecompress.toPath());
              final BZip2CompressorInputStream in = new BZip2CompressorInputStream(is)) {
             int l = 0;
             while (in.read() != -1) {
diff --git a/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java
index 9c1b218..66fcd9c 100644
--- a/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/deflate/DeflateCompressorInputStreamTest.java
@@ -19,9 +19,9 @@
 package org.apache.commons.compress.compressors.deflate;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.utils.IOUtils;
@@ -33,7 +33,7 @@
     @Test
     public void availableShouldReturnNonZero() throws IOException {
         final File input = AbstractTestCase.getFile("bla.tar.deflatez");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final DeflateCompressorInputStream in =
                     new DeflateCompressorInputStream(is);
             Assert.assertTrue(in.available() > 0);
@@ -44,7 +44,7 @@
     @Test
     public void shouldBeAbleToSkipAByte() throws IOException {
         final File input = AbstractTestCase.getFile("bla.tar.deflatez");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final DeflateCompressorInputStream in =
                     new DeflateCompressorInputStream(is);
             Assert.assertEquals(1, in.skip(1));
@@ -55,7 +55,7 @@
     @Test
     public void singleByteReadWorksAsExpected() throws IOException {
         final File input = AbstractTestCase.getFile("bla.tar.deflatez");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final DeflateCompressorInputStream in =
                     new DeflateCompressorInputStream(is);
             // tar header starts with filename "test1.xml"
@@ -67,7 +67,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = AbstractTestCase.getFile("bla.tar.deflatez");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final DeflateCompressorInputStream in =
                     new DeflateCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -81,7 +81,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = AbstractTestCase.getFile("bla.tar.deflatez");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final DeflateCompressorInputStream in =
                     new DeflateCompressorInputStream(is);
             IOUtils.toByteArray(in);
diff --git a/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorInputStreamTest.java
index a70f683..515e212 100644
--- a/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorInputStreamTest.java
@@ -19,9 +19,10 @@
 package org.apache.commons.compress.compressors.lz4;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
+
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.utils.IOUtils;
 import org.junit.Assert;
@@ -31,8 +32,8 @@
 
     @Test
     public void readBlaLz4() throws IOException {
-        try (InputStream a = new BlockLZ4CompressorInputStream(new FileInputStream(getFile("bla.tar.block_lz4")));
-            FileInputStream e = new FileInputStream(getFile("bla.tar"))) {
+        try (InputStream a = new BlockLZ4CompressorInputStream(Files.newInputStream(getFile("bla.tar.block_lz4").toPath()));
+            InputStream e = Files.newInputStream(getFile("bla.tar").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             Assert.assertArrayEquals(expected, actual);
@@ -42,7 +43,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.block_lz4");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BlockLZ4CompressorInputStream in =
                     new BlockLZ4CompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -56,7 +57,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.block_lz4");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final BlockLZ4CompressorInputStream in =
                     new BlockLZ4CompressorInputStream(is);
             IOUtils.toByteArray(in);
diff --git a/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorRoundtripTest.java b/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorRoundtripTest.java
index 3c05c15..a36d8e0 100644
--- a/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorRoundtripTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/lz4/BlockLZ4CompressorRoundtripTest.java
@@ -19,9 +19,10 @@
 package org.apache.commons.compress.compressors.lz4;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.Collection;
 import org.apache.commons.compress.AbstractTestCase;
@@ -58,8 +59,8 @@
         final File input = getFile(testFile);
         long start = System.currentTimeMillis();
         final File outputSz = new File(dir, input.getName() + ".block.lz4");
-        try (FileInputStream is = new FileInputStream(input);
-             final FileOutputStream os = new FileOutputStream(outputSz);
+        try (InputStream is = Files.newInputStream(input.toPath());
+             final OutputStream os = Files.newOutputStream(outputSz.toPath());
              BlockLZ4CompressorOutputStream los = new BlockLZ4CompressorOutputStream(os, params)) {
             IOUtils.copy(is, los);
         }
@@ -67,8 +68,8 @@
         System.err.println(input.getName() + " written, uncompressed bytes: " + input.length()
             + ", compressed bytes: " + outputSz.length() + " after " + (System.currentTimeMillis() - start) + "ms");
         start = System.currentTimeMillis();
-        try (FileInputStream is = new FileInputStream(input);
-             BlockLZ4CompressorInputStream sis = new BlockLZ4CompressorInputStream(new FileInputStream(outputSz))) {
+        try (InputStream is = Files.newInputStream(input.toPath());
+             BlockLZ4CompressorInputStream sis = new BlockLZ4CompressorInputStream(Files.newInputStream(outputSz.toPath()))) {
             final byte[] expected = IOUtils.toByteArray(is);
             final byte[] actual = IOUtils.toByteArray(sis);
             Assert.assertArrayEquals(expected, actual);
diff --git a/src/test/java/org/apache/commons/compress/compressors/lz4/FactoryTest.java b/src/test/java/org/apache/commons/compress/compressors/lz4/FactoryTest.java
index 77b629c..ad6da73 100644
--- a/src/test/java/org/apache/commons/compress/compressors/lz4/FactoryTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/lz4/FactoryTest.java
@@ -19,10 +19,9 @@
 package org.apache.commons.compress.compressors.lz4;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.CompressorStreamFactory;
@@ -46,17 +45,17 @@
         final File input = getFile("bla.tar");
         long start = System.currentTimeMillis();
         final File outputSz = new File(dir, input.getName() + "." + format + ".lz4");
-        try (FileInputStream is = new FileInputStream(input);
-             FileOutputStream os = new FileOutputStream(outputSz);
+        try (InputStream is = Files.newInputStream(input.toPath());
+             OutputStream os = Files.newOutputStream(outputSz.toPath());
              OutputStream los = new CompressorStreamFactory().createCompressorOutputStream(format, os)) {
             IOUtils.copy(is, los);
         }
         System.err.println(input.getName() + " written, uncompressed bytes: " + input.length()
             + ", compressed bytes: " + outputSz.length() + " after " + (System.currentTimeMillis() - start) + "ms");
         start = System.currentTimeMillis();
-        try (FileInputStream is = new FileInputStream(input);
+        try (InputStream is = Files.newInputStream(input.toPath());
              InputStream sis = new CompressorStreamFactory()
-                 .createCompressorInputStream(format, new FileInputStream(outputSz))) {
+                 .createCompressorInputStream(format, Files.newInputStream(outputSz.toPath()))) {
             final byte[] expected = IOUtils.toByteArray(is);
             final byte[] actual = IOUtils.toByteArray(sis);
             Assert.assertArrayEquals(expected, actual);
diff --git a/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorInputStreamTest.java
index 36289ec..ad0931b 100644
--- a/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorInputStreamTest.java
@@ -29,9 +29,9 @@
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.IOException;
+import java.nio.file.Files;
 import java.util.Arrays;
 
 import org.apache.commons.compress.AbstractTestCase;
@@ -59,8 +59,8 @@
 
     @Test
     public void readBlaLz4() throws IOException {
-        try (InputStream a = new FramedLZ4CompressorInputStream(new FileInputStream(getFile("bla.tar.lz4")));
-            FileInputStream e = new FileInputStream(getFile("bla.tar"))) {
+        try (InputStream a = new FramedLZ4CompressorInputStream(Files.newInputStream(getFile("bla.tar.lz4").toPath()));
+            InputStream e = Files.newInputStream(getFile("bla.tar").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expected, actual);
@@ -71,8 +71,8 @@
     public void readBlaLz4ViaFactory() throws Exception {
         try (InputStream a = new CompressorStreamFactory()
                  .createCompressorInputStream(CompressorStreamFactory.getLZ4Framed(),
-                                              new FileInputStream(getFile("bla.tar.lz4")));
-            FileInputStream e = new FileInputStream(getFile("bla.tar"))) {
+                                              Files.newInputStream(getFile("bla.tar.lz4").toPath()));
+            InputStream e = Files.newInputStream(getFile("bla.tar").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expected, actual);
@@ -82,8 +82,8 @@
     @Test
     public void readBlaLz4ViaFactoryAutoDetection() throws Exception {
         try (InputStream a = new CompressorStreamFactory()
-                 .createCompressorInputStream(new BufferedInputStream(new FileInputStream(getFile("bla.tar.lz4"))));
-            FileInputStream e = new FileInputStream(getFile("bla.tar"))) {
+                 .createCompressorInputStream(new BufferedInputStream(Files.newInputStream(getFile("bla.tar.lz4").toPath())));
+            InputStream e = Files.newInputStream(getFile("bla.tar").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expected, actual);
@@ -92,8 +92,8 @@
 
     @Test
     public void readBlaLz4WithDecompressConcatenated() throws IOException {
-        try (InputStream a = new FramedLZ4CompressorInputStream(new FileInputStream(getFile("bla.tar.lz4")), true);
-            FileInputStream e = new FileInputStream(getFile("bla.tar"))) {
+        try (InputStream a = new FramedLZ4CompressorInputStream(Files.newInputStream(getFile("bla.tar.lz4").toPath()), true);
+            InputStream e = Files.newInputStream(getFile("bla.tar").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expected, actual);
@@ -119,9 +119,9 @@
     public void readBlaLz4ViaFactoryWithDecompressConcatenated() throws Exception {
         try (InputStream a = new CompressorStreamFactory()
                  .createCompressorInputStream(CompressorStreamFactory.getLZ4Framed(),
-                                              new FileInputStream(getFile("bla.tar.lz4")),
+                                              Files.newInputStream(getFile("bla.tar.lz4").toPath()),
                                               true);
-            FileInputStream e = new FileInputStream(getFile("bla.tar"))) {
+            InputStream e = Files.newInputStream(getFile("bla.tar").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expected, actual);
@@ -148,8 +148,8 @@
 
     @Test
     public void readBlaDumpLz4() throws IOException {
-        try (InputStream a = new FramedLZ4CompressorInputStream(new FileInputStream(getFile("bla.dump.lz4")));
-            FileInputStream e = new FileInputStream(getFile("bla.dump"))) {
+        try (InputStream a = new FramedLZ4CompressorInputStream(Files.newInputStream(getFile("bla.dump.lz4").toPath()));
+            InputStream e = Files.newInputStream(getFile("bla.dump").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expected, actual);
@@ -158,7 +158,7 @@
 
     @Test(expected = IOException.class)
     public void rejectsNonLZ4Stream() throws IOException {
-        try (InputStream a = new FramedLZ4CompressorInputStream(new FileInputStream(getFile("bla.tar")))) {
+        try (InputStream a = new FramedLZ4CompressorInputStream(Files.newInputStream(getFile("bla.tar").toPath()))) {
              fail("expected exception");
         }
     }
@@ -572,7 +572,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.lz4");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final FramedLZ4CompressorInputStream in =
                     new FramedLZ4CompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -586,7 +586,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.lz4");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final FramedLZ4CompressorInputStream in =
                     new FramedLZ4CompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -617,12 +617,12 @@
 
     private void readDoubledBlaLz4(final StreamWrapper wrapper, final boolean expectDuplicateOutput) throws Exception {
         byte[] singleInput;
-        try (InputStream i = new FileInputStream(getFile("bla.tar.lz4"))) {
+        try (InputStream i = Files.newInputStream(getFile("bla.tar.lz4").toPath())) {
             singleInput = IOUtils.toByteArray(i);
         }
         final byte[] input = duplicate(singleInput);
         try (InputStream a = wrapper.wrap(new ByteArrayInputStream(input));
-            FileInputStream e = new FileInputStream(getFile("bla.tar"))) {
+            InputStream e = Files.newInputStream(getFile("bla.tar").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expectDuplicateOutput ? duplicate(expected) : expected, actual);
@@ -637,7 +637,7 @@
 
     private void expectIOException(final String fileName) throws IOException {
         thrown.expect(IOException.class);
-        try (InputStream is = new FileInputStream(getFile(fileName))) {
+        try (InputStream is = Files.newInputStream(getFile(fileName).toPath())) {
             final FramedLZ4CompressorInputStream in = new FramedLZ4CompressorInputStream(is);
             IOUtils.toByteArray(in);
         }
diff --git a/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorRoundtripTest.java b/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorRoundtripTest.java
index a033fd9..dbf0458 100644
--- a/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorRoundtripTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorRoundtripTest.java
@@ -21,8 +21,9 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.Collection;
 import org.apache.commons.compress.AbstractTestCase;
@@ -70,7 +71,7 @@
         long start = System.currentTimeMillis();
         final File outputSz = new File(dir, input.getName() + ".framed.lz4");
         byte[] expected;
-        try (FileInputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             expected = IOUtils.toByteArray(is);
         }
         final ByteArrayOutputStream bos = new ByteArrayOutputStream();
diff --git a/src/test/java/org/apache/commons/compress/compressors/lz4/XXHash32Test.java b/src/test/java/org/apache/commons/compress/compressors/lz4/XXHash32Test.java
index aa3cd31..66aaa4a 100644
--- a/src/test/java/org/apache/commons/compress/compressors/lz4/XXHash32Test.java
+++ b/src/test/java/org/apache/commons/compress/compressors/lz4/XXHash32Test.java
@@ -19,8 +19,9 @@
 package org.apache.commons.compress.compressors.lz4;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.Collection;
 
@@ -57,7 +58,7 @@
     @Test
     public void verifyChecksum() throws IOException {
         final XXHash32 h = new XXHash32();
-        try (FileInputStream s = new FileInputStream(file)) {
+        try (InputStream s = Files.newInputStream(file.toPath())) {
             final byte[] b = IOUtils.toByteArray(s);
             h.update(b, 0, b.length);
         }
diff --git a/src/test/java/org/apache/commons/compress/compressors/pack200/Pack200UtilsTest.java b/src/test/java/org/apache/commons/compress/compressors/pack200/Pack200UtilsTest.java
index 0b2eebe..b408566 100644
--- a/src/test/java/org/apache/commons/compress/compressors/pack200/Pack200UtilsTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/pack200/Pack200UtilsTest.java
@@ -19,9 +19,9 @@
 package org.apache.commons.compress.compressors.pack200;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
+import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.HashMap;
 
 import org.apache.commons.compress.AbstractTestCase;
@@ -40,7 +40,7 @@
         try {
             Pack200Utils.normalize(input, output[1],
                                    new HashMap<String, String>());
-            try (FileInputStream is = new FileInputStream(output[1])) {
+            try (InputStream is = Files.newInputStream(output[1].toPath())) {
                 final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT
                         .createArchiveInputStream("jar", is);
 
@@ -53,7 +53,7 @@
                         entry = in.getNextEntry();
                         continue;
                     }
-                    final OutputStream out = new FileOutputStream(archiveEntry);
+                    final OutputStream out = Files.newOutputStream(archiveEntry.toPath());
                     IOUtils.copy(in, out);
                     out.close();
                     entry = in.getNextEntry();
@@ -72,10 +72,10 @@
         final File input = getFile("bla.jar");
         final File[] output = createTempDirAndFile();
         try {
-            FileInputStream is = new FileInputStream(input);
+            InputStream is = Files.newInputStream(input.toPath());
             OutputStream os = null;
             try {
-                os = new FileOutputStream(output[1]);
+                os = Files.newOutputStream(output[1].toPath());
                 IOUtils.copy(is, os);
             } finally {
                 is.close();
@@ -85,7 +85,7 @@
             }
 
             Pack200Utils.normalize(output[1]);
-            is = new FileInputStream(output[1]);
+            is = Files.newInputStream(output[1].toPath());
             try {
                 final ArchiveInputStream in = ArchiveStreamFactory.DEFAULT
                     .createArchiveInputStream("jar", is);
@@ -99,7 +99,7 @@
                         entry = in.getNextEntry();
                         continue;
                     }
-                    final OutputStream out = new FileOutputStream(archiveEntry);
+                    final OutputStream out = Files.newOutputStream(archiveEntry.toPath());
                     IOUtils.copy(in, out);
                     out.close();
                     entry = in.getNextEntry();
diff --git a/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java
index e27c11d..f488a6e 100644
--- a/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java
@@ -27,10 +27,11 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.zip.ZipFile;
 import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
@@ -57,11 +58,11 @@
     public void testLoremIpsum() throws Exception {
         final File outputSz = new File(dir, "lorem-ipsum.1");
         final File outputGz = new File(dir, "lorem-ipsum.2");
-        try (FileInputStream isSz = new FileInputStream(getFile("lorem-ipsum.txt.sz"))) {
+        try (InputStream isSz = Files.newInputStream(getFile("lorem-ipsum.txt.sz").toPath())) {
             InputStream in = new FramedSnappyCompressorInputStream(isSz);
-            FileOutputStream out = null;
+            OutputStream out = null;
             try {
-                out = new FileOutputStream(outputSz);
+                out = Files.newOutputStream(outputSz.toPath());
                 IOUtils.copy(in, out);
             } finally {
                 if (out != null) {
@@ -69,10 +70,10 @@
                 }
                 in.close();
             }
-            try (FileInputStream isGz = new FileInputStream(getFile("lorem-ipsum.txt.gz"))) {
+            try (InputStream isGz = Files.newInputStream(getFile("lorem-ipsum.txt.gz").toPath())) {
                 in = new GzipCompressorInputStream(isGz);
                 try {
-                    out = new FileOutputStream(outputGz);
+                    out = Files.newOutputStream(outputGz.toPath());
                     IOUtils.copy(in, out);
                 } finally {
                     if (out != null) {
@@ -83,8 +84,8 @@
             }
         }
 
-        try (FileInputStream sz = new FileInputStream(outputSz)) {
-            try (FileInputStream gz = new FileInputStream(outputGz)) {
+        try (InputStream sz = Files.newInputStream(outputSz.toPath())) {
+            try (InputStream gz = Files.newInputStream(outputGz.toPath())) {
                 assertArrayEquals(IOUtils.toByteArray(sz),
                         IOUtils.toByteArray(gz));
             }
@@ -94,7 +95,7 @@
     @Test
     public void testRemainingChunkTypes() throws Exception {
         final ByteArrayOutputStream out = new ByteArrayOutputStream();
-        try (FileInputStream isSz = new FileInputStream(getFile("mixed.txt.sz"))) {
+        try (InputStream isSz = Files.newInputStream(getFile("mixed.txt.sz").toPath())) {
             final FramedSnappyCompressorInputStream in = new FramedSnappyCompressorInputStream(isSz);
             IOUtils.copy(in, out);
             out.close();
@@ -113,7 +114,7 @@
 
     @Test
     public void testAvailable() throws Exception {
-        try (FileInputStream isSz = new FileInputStream(getFile("mixed.txt.sz"))) {
+        try (InputStream isSz = Files.newInputStream(getFile("mixed.txt.sz").toPath())) {
             final FramedSnappyCompressorInputStream in = new FramedSnappyCompressorInputStream(isSz);
             assertEquals(0, in.available()); // no chunk read so far
             assertEquals('1', in.read());
@@ -156,7 +157,7 @@
             try (InputStream is = zip.getInputStream(zip.getEntry("Index/Document.iwa"))) {
                 try (FramedSnappyCompressorInputStream in =
                         new FramedSnappyCompressorInputStream(is, FramedSnappyDialect.IWORK_ARCHIVE);
-                        FileOutputStream out = new FileOutputStream(new File(dir, "snappyIWATest.raw"))) {
+                        OutputStream out = Files.newOutputStream(new File(dir, "snappyIWATest.raw").toPath())) {
                     IOUtils.copy(in, out);
                 }
             }
@@ -169,14 +170,14 @@
     @Test
     public void readIWAFileWithBiggerOffset() throws Exception {
         final File o = new File(dir, "COMPRESS-358.raw");
-        try (InputStream is = new FileInputStream(getFile("COMPRESS-358.iwa"));
+        try (InputStream is = Files.newInputStream(getFile("COMPRESS-358.iwa").toPath());
              FramedSnappyCompressorInputStream in =
                  new FramedSnappyCompressorInputStream(is, 1<<16, FramedSnappyDialect.IWORK_ARCHIVE);
-             FileOutputStream out = new FileOutputStream(o)) {
+            OutputStream out = Files.newOutputStream(o.toPath())) {
             IOUtils.copy(in, out);
         }
-        try (FileInputStream a = new FileInputStream(o);
-             FileInputStream e = new FileInputStream(getFile("COMPRESS-358.uncompressed"))) {
+        try (InputStream a = Files.newInputStream(o.toPath());
+             InputStream e = Files.newInputStream(getFile("COMPRESS-358.uncompressed").toPath())) {
             final byte[] expected = IOUtils.toByteArray(e);
             final byte[] actual = IOUtils.toByteArray(a);
             assertArrayEquals(expected, actual);
@@ -186,7 +187,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.sz");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final FramedSnappyCompressorInputStream in =
                     new FramedSnappyCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -200,7 +201,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.sz");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final FramedSnappyCompressorInputStream in =
                     new FramedSnappyCompressorInputStream(is);
             IOUtils.toByteArray(in);
diff --git a/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java b/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java
index d55a449..ecc5dee 100644
--- a/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java
@@ -21,9 +21,10 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.Random;
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.lz77support.Parameters;
@@ -42,16 +43,16 @@
     private void roundTripTest(final File input, final Parameters params) throws IOException {
         long start = System.currentTimeMillis();
         final File outputSz = new File(dir, input.getName() + ".raw.sz");
-        try (FileInputStream is = new FileInputStream(input);
-             FileOutputStream os = new FileOutputStream(outputSz);
+        try (InputStream is = Files.newInputStream(input.toPath());
+             OutputStream os = Files.newOutputStream(outputSz.toPath());
              SnappyCompressorOutputStream sos = new SnappyCompressorOutputStream(os, input.length(), params)) {
             IOUtils.copy(is, sos);
         }
         System.err.println(input.getName() + " written, uncompressed bytes: " + input.length()
             + ", compressed bytes: " + outputSz.length() + " after " + (System.currentTimeMillis() - start) + "ms");
         start = System.currentTimeMillis();
-        try (FileInputStream is = new FileInputStream(input);
-             SnappyCompressorInputStream sis = new SnappyCompressorInputStream(new FileInputStream(outputSz),
+        try (InputStream is = Files.newInputStream(input.toPath());
+             SnappyCompressorInputStream sis = new SnappyCompressorInputStream(Files.newInputStream(outputSz.toPath()),
                  params.getWindowSize())) {
             final byte[] expected = IOUtils.toByteArray(is);
             final byte[] actual = IOUtils.toByteArray(sis);
@@ -163,7 +164,7 @@
         // buffer (and a file written to disk) that was 2^5 bigger
         // than the buffer used here.
         final File f = new File(dir, "reallyBigLiteralTest");
-        try (FileOutputStream fs = new FileOutputStream(f)) {
+        try (OutputStream fs = Files.newOutputStream(f.toPath())) {
             final int cnt = 1 << 19;
             final Random r = new Random();
             for (int i = 0 ; i < cnt; i++) {
diff --git a/src/test/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStreamTest.java
index d624347..229b27a 100644
--- a/src/test/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/xz/XZCompressorInputStreamTest.java
@@ -21,9 +21,10 @@
 import static org.apache.commons.compress.AbstractTestCase.getFile;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
+
 import org.apache.commons.compress.utils.IOUtils;
 import org.junit.Assert;
 import org.junit.Test;
@@ -53,7 +54,7 @@
 
     private void singleByteReadConsistentlyReturnsMinusOneAtEof(final boolean decompressConcatenated) throws IOException {
         final File input = getFile("bla.tar.xz");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final XZCompressorInputStream in =
                 new XZCompressorInputStream(is, decompressConcatenated);
             IOUtils.toByteArray(in);
@@ -76,7 +77,7 @@
     private void multiByteReadConsistentlyReturnsMinusOneAtEof(final boolean decompressConcatenated) throws IOException {
         final File input = getFile("bla.tar.xz");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final XZCompressorInputStream in =
                 new XZCompressorInputStream(is, decompressConcatenated);
             IOUtils.toByteArray(in);
diff --git a/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java
index 6f4b38b..5935173 100644
--- a/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java
@@ -22,10 +22,10 @@
 import org.junit.Test;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.SequenceInputStream;
+import java.nio.file.Files;
 import java.util.Collections;
 import org.apache.commons.compress.utils.IOUtils;
 
@@ -49,7 +49,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.Z");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final ZCompressorInputStream in =
                     new ZCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -63,7 +63,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("bla.tar.Z");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final ZCompressorInputStream in =
                     new ZCompressorInputStream(is);
             IOUtils.toByteArray(in);
diff --git a/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorInputStreamTest.java b/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorInputStreamTest.java
index 728f9aa..a81fce3 100644
--- a/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdCompressorInputStreamTest.java
@@ -22,10 +22,10 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
 
 import com.github.luben.zstd.NoPool;
 import com.github.luben.zstd.RecyclingBufferPool;
@@ -47,7 +47,7 @@
     public void testZstdDecode() throws IOException {
         final File input = getFile("zstandard.testdata.zst");
         final File expected = getFile("zstandard.testdata");
-        try (InputStream inputStream = new FileInputStream(input);
+        try (InputStream inputStream = Files.newInputStream(input.toPath());
             ZstdCompressorInputStream zstdInputStream = new ZstdCompressorInputStream(inputStream)) {
             final byte[] b = new byte[97];
             IOUtils.read(expected, b);
@@ -64,7 +64,7 @@
     public void testZstdDecodeWithNoPool() throws IOException {
         final File input = getFile("zstandard.testdata.zst");
         final File expected = getFile("zstandard.testdata");
-        try (InputStream inputStream = new FileInputStream(input);
+        try (InputStream inputStream = Files.newInputStream(input.toPath());
              ZstdCompressorInputStream zstdInputStream = new ZstdCompressorInputStream(inputStream, NoPool.INSTANCE)) {
             final byte[] b = new byte[97];
             IOUtils.read(expected, b);
@@ -81,7 +81,7 @@
     public void testZstdDecodeWithRecyclingBufferPool() throws IOException {
         final File input = getFile("zstandard.testdata.zst");
         final File expected = getFile("zstandard.testdata");
-        try (InputStream inputStream = new FileInputStream(input);
+        try (InputStream inputStream = Files.newInputStream(input.toPath());
              ZstdCompressorInputStream zstdInputStream = new ZstdCompressorInputStream(inputStream, RecyclingBufferPool.INSTANCE)) {
             final byte[] b = new byte[97];
             IOUtils.read(expected, b);
@@ -126,7 +126,7 @@
     @Test
     public void shouldBeAbleToSkipAByte() throws IOException {
         final File input = getFile("zstandard.testdata.zst");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final ZstdCompressorInputStream in =
                     new ZstdCompressorInputStream(is);
             Assert.assertEquals(1, in.skip(1));
@@ -144,11 +144,11 @@
 
         final byte[] originalFileContent = new byte[((int) originalFileLength)];
 
-        try (InputStream ois = new FileInputStream(original)) {
+        try (InputStream ois = Files.newInputStream(original.toPath())) {
             ois.read(originalFileContent);
         }
 
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final ZstdCompressorInputStream in =
                     new ZstdCompressorInputStream(is);
 
@@ -160,7 +160,7 @@
     @Test
     public void singleByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("zstandard.testdata.zst");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final ZstdCompressorInputStream in =
                     new ZstdCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -174,7 +174,7 @@
     public void multiByteReadConsistentlyReturnsMinusOneAtEof() throws IOException {
         final File input = getFile("zstandard.testdata.zst");
         final byte[] buf = new byte[2];
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             final ZstdCompressorInputStream in =
                     new ZstdCompressorInputStream(is);
             IOUtils.toByteArray(in);
@@ -188,10 +188,10 @@
     public void testZstandardUnarchive() throws Exception {
         final File input = getFile("bla.tar.zst");
         final File output = new File(dir, "bla.tar");
-        try (InputStream is = new FileInputStream(input)) {
+        try (InputStream is = Files.newInputStream(input.toPath())) {
             try (CompressorInputStream in = new CompressorStreamFactory()
                     .createCompressorInputStream("zstd", is);
-                    FileOutputStream out = new FileOutputStream(output)) {
+                OutputStream out = Files.newOutputStream(output.toPath())) {
                 IOUtils.copy(in, out);
             }
         }
diff --git a/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java b/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java
index bcb919d..0e1ac52 100644
--- a/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java
@@ -18,9 +18,12 @@
 package org.apache.commons.compress.compressors.zstandard;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+
 import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.compressors.CompressorInputStream;
 import org.apache.commons.compress.compressors.CompressorOutputStream;
@@ -44,7 +47,7 @@
         final File input = getFile("bla.tar");
         long start = System.currentTimeMillis();
         final File output = new File(dir, input.getName() + ".zstd");
-        try (FileInputStream is = new FileInputStream(input);
+        try (InputStream is = Files.newInputStream(input.toPath());
              FileOutputStream os = new FileOutputStream(output);
              ZstdCompressorOutputStream zos = oc.wrap(os)) {
             IOUtils.copy(is, zos);
@@ -52,8 +55,8 @@
         System.err.println(input.getName() + " written, uncompressed bytes: " + input.length()
             + ", compressed bytes: " + output.length() + " after " + (System.currentTimeMillis() - start) + "ms");
         start = System.currentTimeMillis();
-        try (FileInputStream is = new FileInputStream(input);
-             ZstdCompressorInputStream zis = new ZstdCompressorInputStream(new FileInputStream(output))) {
+        try (InputStream is = Files.newInputStream(input.toPath());
+             ZstdCompressorInputStream zis = new ZstdCompressorInputStream(Files.newInputStream(output.toPath()))) {
             final byte[] expected = IOUtils.toByteArray(is);
             final byte[] actual = IOUtils.toByteArray(zis);
             Assert.assertArrayEquals(expected, actual);
@@ -66,15 +69,15 @@
         final File input = getFile("bla.tar");
         long start = System.currentTimeMillis();
         final File output = new File(dir, input.getName() + ".zstd");
-        try (FileInputStream is = new FileInputStream(input);
-             FileOutputStream os = new FileOutputStream(output);
+        try (InputStream is = Files.newInputStream(input.toPath());
+             OutputStream os = Files.newOutputStream(output.toPath());
              CompressorOutputStream zos = new CompressorStreamFactory().createCompressorOutputStream("zstd", os)) {
             IOUtils.copy(is, zos);
         }
         start = System.currentTimeMillis();
-        try (FileInputStream is = new FileInputStream(input);
+        try (InputStream is = Files.newInputStream(input.toPath());
              CompressorInputStream zis = new CompressorStreamFactory()
-             .createCompressorInputStream("zstd", new FileInputStream(output))) {
+             .createCompressorInputStream("zstd", Files.newInputStream(output.toPath()))) {
             final byte[] expected = IOUtils.toByteArray(is);
             final byte[] actual = IOUtils.toByteArray(zis);
             Assert.assertArrayEquals(expected, actual);
diff --git a/src/test/java/org/apache/commons/compress/utils/FixedLengthBlockOutputStreamTest.java b/src/test/java/org/apache/commons/compress/utils/FixedLengthBlockOutputStreamTest.java
index 7997d5d..6752ff3 100644
--- a/src/test/java/org/apache/commons/compress/utils/FixedLengthBlockOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/utils/FixedLengthBlockOutputStreamTest.java
@@ -28,7 +28,6 @@
 import java.io.ByteArrayOutputStream;
 import java.io.DataInputStream;
 import java.io.DataOutputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
@@ -204,7 +203,7 @@
         });
         final int blockSize = 512;
         final int reps = 1000;
-        final OutputStream os = new FileOutputStream(tempFile.toFile());
+        final OutputStream os = Files.newOutputStream(tempFile.toFile().toPath());
         try (FixedLengthBlockOutputStream out = new FixedLengthBlockOutputStream(
             os, blockSize)) {
             final DataOutputStream dos = new DataOutputStream(out);