You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/07/15 18:02:56 UTC

[commons-io] 02/02: Use forEach()

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git

commit 67d980343fee071ef3fdd4a0fc0b7e7208309c93
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Jul 15 14:02:47 2022 -0400

    Use forEach()
---
 src/main/java/org/apache/commons/io/FileUtils.java |  3 +--
 .../java/org/apache/commons/io/FilenameUtils.java  |  8 +-----
 src/main/java/org/apache/commons/io/IOCase.java    |  9 +++----
 .../io/comparator/CompositeFileComparator.java     | 13 +++------
 .../commons/io/file/spi/FileSystemProviders.java   | 12 +++------
 .../commons/io/filefilter/AndFileFilter.java       | 31 +++-------------------
 .../commons/io/filefilter/NameFileFilter.java      |  8 ++----
 .../apache/commons/io/filefilter/OrFileFilter.java | 21 +++------------
 .../commons/io/filefilter/PrefixFileFilter.java    |  8 ++----
 .../commons/io/filefilter/SuffixFileFilter.java    |  8 ++----
 .../commons/io/filefilter/WildcardFileFilter.java  |  8 ++----
 .../commons/io/filefilter/WildcardFilter.java      | 28 ++++---------------
 .../commons/io/input/ObservableInputStream.java    | 29 ++++++++++----------
 .../commons/io/monitor/FileAlterationMonitor.java  |  4 +--
 src/test/java/org/apache/commons/io/DemuxTest.java |  8 ++----
 .../apache/commons/io/FileUtilsListFilesTest.java  | 16 +++++------
 .../commons/io/file/DirectoryStreamFilterTest.java |  4 +--
 .../io/file/spi/FileSystemProvidersTest.java       |  4 +--
 .../commons/io/filefilter/AgeFileFilterTest.java   |  3 ---
 .../commons/io/filefilter/AndFileFilterTest.java   |  4 +--
 .../ConditionalFileFilterAbstractTest.java         |  8 +++---
 .../io/filefilter/DirectoryFileFilterTest.java     |  3 ---
 .../io/filefilter/IOFileFilterAbstractTest.java    | 14 +++-------
 .../commons/io/filefilter/NameFileFilterTest.java  |  3 ---
 .../commons/io/filefilter/OrFileFilterTest.java    |  4 +--
 .../io/monitor/FileAlterationMonitorTest.java      |  4 +--
 26 files changed, 68 insertions(+), 197 deletions(-)

diff --git a/src/main/java/org/apache/commons/io/FileUtils.java b/src/main/java/org/apache/commons/io/FileUtils.java
index c7876c74..cf915511 100644
--- a/src/main/java/org/apache/commons/io/FileUtils.java
+++ b/src/main/java/org/apache/commons/io/FileUtils.java
@@ -692,8 +692,7 @@ public class FileUtils {
             if (srcFiles.length > 0) {
                 exclusionList = new ArrayList<>(srcFiles.length);
                 for (final File srcFile : srcFiles) {
-                    final File copiedFile = new File(destDir, srcFile.getName());
-                    exclusionList.add(copiedFile.getCanonicalPath());
+                    exclusionList.add(new File(destDir, srcFile.getName()).getCanonicalPath());
                 }
             }
         }
diff --git a/src/main/java/org/apache/commons/io/FilenameUtils.java b/src/main/java/org/apache/commons/io/FilenameUtils.java
index 83fecf2b..67d2303c 100644
--- a/src/main/java/org/apache/commons/io/FilenameUtils.java
+++ b/src/main/java/org/apache/commons/io/FilenameUtils.java
@@ -1005,13 +1005,7 @@ public class FilenameUtils {
         if (extensions == null || extensions.isEmpty()) {
             return indexOfExtension(fileName) == NOT_FOUND;
         }
-        final String fileExt = getExtension(fileName);
-        for (final String extension : extensions) {
-            if (fileExt.equals(extension)) {
-                return true;
-            }
-        }
-        return false;
+        return extensions.contains(getExtension(fileName));
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/IOCase.java b/src/main/java/org/apache/commons/io/IOCase.java
index 6e93fd07..4893ec16 100644
--- a/src/main/java/org/apache/commons/io/IOCase.java
+++ b/src/main/java/org/apache/commons/io/IOCase.java
@@ -17,6 +17,7 @@
 package org.apache.commons.io;
 
 import java.util.Objects;
+import java.util.stream.Stream;
 
 /**
  * Enumeration of IO case sensitivity.
@@ -75,12 +76,8 @@ public enum IOCase {
      * @throws IllegalArgumentException if the name is invalid
      */
     public static IOCase forName(final String name) {
-        for (final IOCase ioCase : IOCase.values()) {
-            if (ioCase.getName().equals(name)) {
-                return ioCase;
-            }
-        }
-        throw new IllegalArgumentException("Invalid IOCase name: " + name);
+        return Stream.of(IOCase.values()).filter(ioCase -> ioCase.getName().equals(name)).findFirst()
+                .orElseThrow(() -> new IllegalArgumentException("Invalid IOCase name: " + name));
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/comparator/CompositeFileComparator.java b/src/main/java/org/apache/commons/io/comparator/CompositeFileComparator.java
index 0c798317..5ca90e61 100644
--- a/src/main/java/org/apache/commons/io/comparator/CompositeFileComparator.java
+++ b/src/main/java/org/apache/commons/io/comparator/CompositeFileComparator.java
@@ -18,9 +18,8 @@ package org.apache.commons.io.comparator;
 
 import java.io.File;
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.Comparator;
-import java.util.List;
+import java.util.stream.StreamSupport;
 
 /**
  * Compare two files using a set of delegate file {@link Comparator}.
@@ -56,9 +55,9 @@ public class CompositeFileComparator extends AbstractFileComparator implements S
     @SuppressWarnings("unchecked") // casts 1 & 2 must be OK because types are already correct
     public CompositeFileComparator(final Comparator<File>... delegates) {
         if (delegates == null) {
-            this.delegates = (Comparator<File>[]) EMPTY_COMPARATOR_ARRAY;//1
+            this.delegates = (Comparator<File>[]) EMPTY_COMPARATOR_ARRAY; //1
         } else {
-            this.delegates = delegates.clone();//2
+            this.delegates = delegates.clone(); //2
         }
     }
 
@@ -72,11 +71,7 @@ public class CompositeFileComparator extends AbstractFileComparator implements S
         if (delegates == null) {
             this.delegates = (Comparator<File>[]) EMPTY_COMPARATOR_ARRAY; //1
         } else {
-            final List<Comparator<File>> list = new ArrayList<>();
-            for (final Comparator<File> comparator : delegates) {
-                list.add(comparator);
-            }
-            this.delegates = (Comparator<File>[]) list.toArray(EMPTY_COMPARATOR_ARRAY); //2
+            this.delegates = StreamSupport.stream(delegates.spliterator(), false).toArray(Comparator[]::new);
         }
     }
 
diff --git a/src/main/java/org/apache/commons/io/file/spi/FileSystemProviders.java b/src/main/java/org/apache/commons/io/file/spi/FileSystemProviders.java
index c87ac057..93926662 100644
--- a/src/main/java/org/apache/commons/io/file/spi/FileSystemProviders.java
+++ b/src/main/java/org/apache/commons/io/file/spi/FileSystemProviders.java
@@ -22,6 +22,7 @@ import java.net.URL;
 import java.nio.file.FileSystems;
 import java.nio.file.Path;
 import java.nio.file.spi.FileSystemProvider;
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
 
@@ -61,7 +62,7 @@ public class FileSystemProviders {
      * Might make public later.
      */
     private FileSystemProviders(final List<FileSystemProvider> providers) {
-        this.providers = providers;
+        this.providers = providers != null ? providers : Collections.emptyList();
     }
 
     /**
@@ -78,14 +79,7 @@ public class FileSystemProviders {
             return FileSystems.getDefault().provider();
         }
         // Find provider.
-        if (providers != null) {
-            for (final FileSystemProvider provider : providers) {
-                if (provider.getScheme().equalsIgnoreCase(scheme)) {
-                    return provider;
-                }
-            }
-        }
-        return null;
+        return providers.stream().filter(provider -> provider.getScheme().equalsIgnoreCase(scheme)).findFirst().orElse(null);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/filefilter/AndFileFilter.java b/src/main/java/org/apache/commons/io/filefilter/AndFileFilter.java
index 163c9940..6afb3fc9 100644
--- a/src/main/java/org/apache/commons/io/filefilter/AndFileFilter.java
+++ b/src/main/java/org/apache/commons/io/filefilter/AndFileFilter.java
@@ -112,15 +112,7 @@ public class AndFileFilter
      */
     @Override
     public boolean accept(final File file) {
-        if (isEmpty()) {
-            return false;
-        }
-        for (final IOFileFilter fileFilter : fileFilters) {
-            if (!fileFilter.accept(file)) {
-                return false;
-            }
-        }
-        return true;
+        return !isEmpty() && fileFilters.stream().allMatch(fileFilter -> fileFilter.accept(file));
     }
 
     /**
@@ -128,15 +120,7 @@ public class AndFileFilter
      */
     @Override
     public boolean accept(final File file, final String name) {
-        if (isEmpty()) {
-            return false;
-        }
-        for (final IOFileFilter fileFilter : fileFilters) {
-            if (!fileFilter.accept(file, name)) {
-                return false;
-            }
-        }
-        return true;
+        return !isEmpty() && fileFilters.stream().allMatch(fileFilter -> fileFilter.accept(file, name));
     }
 
     /**
@@ -145,15 +129,8 @@ public class AndFileFilter
      */
     @Override
     public FileVisitResult accept(final Path file, final BasicFileAttributes attributes) {
-        if (isEmpty()) {
-            return FileVisitResult.TERMINATE;
-        }
-        for (final IOFileFilter fileFilter : fileFilters) {
-            if (fileFilter.accept(file, attributes) != FileVisitResult.CONTINUE) {
-                return FileVisitResult.TERMINATE;
-            }
-        }
-        return FileVisitResult.CONTINUE;
+        return isEmpty() ? FileVisitResult.TERMINATE
+                : toDefaultFileVisitResult(fileFilters.stream().allMatch(fileFilter -> fileFilter.accept(file, attributes) == FileVisitResult.CONTINUE));
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/filefilter/NameFileFilter.java b/src/main/java/org/apache/commons/io/filefilter/NameFileFilter.java
index d301a81d..b916fae6 100644
--- a/src/main/java/org/apache/commons/io/filefilter/NameFileFilter.java
+++ b/src/main/java/org/apache/commons/io/filefilter/NameFileFilter.java
@@ -23,6 +23,7 @@ import java.nio.file.Path;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Stream;
 
 import org.apache.commons.io.IOCase;
 
@@ -185,12 +186,7 @@ public class NameFileFilter extends AbstractFileFilter implements Serializable {
     }
 
     private boolean acceptBaseName(final String baseName) {
-        for (final String testName : names) {
-            if (ioCase.checkEquals(baseName, testName)) {
-                return true;
-            }
-        }
-        return false;
+        return Stream.of(names).anyMatch(testName -> ioCase.checkEquals(baseName, testName));
     }
 
     private IOCase toIOCase(final IOCase ioCase) {
diff --git a/src/main/java/org/apache/commons/io/filefilter/OrFileFilter.java b/src/main/java/org/apache/commons/io/filefilter/OrFileFilter.java
index 1c612542..18016ed5 100644
--- a/src/main/java/org/apache/commons/io/filefilter/OrFileFilter.java
+++ b/src/main/java/org/apache/commons/io/filefilter/OrFileFilter.java
@@ -107,12 +107,7 @@ public class OrFileFilter extends AbstractFileFilter implements ConditionalFileF
      */
     @Override
     public boolean accept(final File file) {
-        for (final IOFileFilter fileFilter : fileFilters) {
-            if (fileFilter.accept(file)) {
-                return true;
-            }
-        }
-        return false;
+        return fileFilters.stream().anyMatch(fileFilter -> fileFilter.accept(file));
     }
 
     /**
@@ -120,12 +115,7 @@ public class OrFileFilter extends AbstractFileFilter implements ConditionalFileF
      */
     @Override
     public boolean accept(final File file, final String name) {
-        for (final IOFileFilter fileFilter : fileFilters) {
-            if (fileFilter.accept(file, name)) {
-                return true;
-            }
-        }
-        return false;
+        return fileFilters.stream().anyMatch(fileFilter -> fileFilter.accept(file, name));
     }
 
     /**
@@ -133,12 +123,7 @@ public class OrFileFilter extends AbstractFileFilter implements ConditionalFileF
      */
     @Override
     public FileVisitResult accept(final Path file, final BasicFileAttributes attributes) {
-        for (final IOFileFilter fileFilter : fileFilters) {
-            if (fileFilter.accept(file, attributes) == FileVisitResult.CONTINUE) {
-                return FileVisitResult.CONTINUE;
-            }
-        }
-        return FileVisitResult.TERMINATE;
+        return toDefaultFileVisitResult(fileFilters.stream().anyMatch(fileFilter -> fileFilter.accept(file, attributes) == FileVisitResult.CONTINUE));
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/filefilter/PrefixFileFilter.java b/src/main/java/org/apache/commons/io/filefilter/PrefixFileFilter.java
index 852e82bb..f573ad9f 100644
--- a/src/main/java/org/apache/commons/io/filefilter/PrefixFileFilter.java
+++ b/src/main/java/org/apache/commons/io/filefilter/PrefixFileFilter.java
@@ -23,6 +23,7 @@ import java.nio.file.Path;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Stream;
 
 import org.apache.commons.io.IOCase;
 
@@ -191,12 +192,7 @@ public class PrefixFileFilter extends AbstractFileFilter implements Serializable
     }
 
     private boolean accept(final String name) {
-        for (final String prefix : prefixes) {
-            if (isCase.checkStartsWith(name, prefix)) {
-                return true;
-            }
-        }
-        return false;
+        return Stream.of(prefixes).anyMatch(prefix -> isCase.checkStartsWith(name, prefix));
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/filefilter/SuffixFileFilter.java b/src/main/java/org/apache/commons/io/filefilter/SuffixFileFilter.java
index 7c417539..92532273 100644
--- a/src/main/java/org/apache/commons/io/filefilter/SuffixFileFilter.java
+++ b/src/main/java/org/apache/commons/io/filefilter/SuffixFileFilter.java
@@ -23,6 +23,7 @@ import java.nio.file.Path;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Stream;
 
 import org.apache.commons.io.IOCase;
 
@@ -191,12 +192,7 @@ public class SuffixFileFilter extends AbstractFileFilter implements Serializable
     }
 
     private boolean accept(final String name) {
-        for (final String suffix : this.suffixes) {
-            if (ioCase.checkEndsWith(name, suffix)) {
-                return true;
-            }
-        }
-        return false;
+        return Stream.of(suffixes).anyMatch(suffix -> ioCase.checkEndsWith(name, suffix));
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/filefilter/WildcardFileFilter.java b/src/main/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
index aa7c0daf..af54b094 100644
--- a/src/main/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
+++ b/src/main/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
@@ -23,6 +23,7 @@ import java.nio.file.Path;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Stream;
 
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOCase;
@@ -191,12 +192,7 @@ public class WildcardFileFilter extends AbstractFileFilter implements Serializab
     }
 
     private boolean accept(final String name) {
-        for (final String wildcard : wildcards) {
-            if (FilenameUtils.wildcardMatch(name, wildcard, ioCase)) {
-                return true;
-            }
-        }
-        return false;
+        return Stream.of(wildcards).anyMatch(wildcard -> FilenameUtils.wildcardMatch(name, wildcard, ioCase));
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/filefilter/WildcardFilter.java b/src/main/java/org/apache/commons/io/filefilter/WildcardFilter.java
index 47f45c74..3b9eae89 100644
--- a/src/main/java/org/apache/commons/io/filefilter/WildcardFilter.java
+++ b/src/main/java/org/apache/commons/io/filefilter/WildcardFilter.java
@@ -24,6 +24,7 @@ import java.nio.file.Path;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Stream;
 
 import org.apache.commons.io.FilenameUtils;
 
@@ -129,14 +130,7 @@ public class WildcardFilter extends AbstractFileFilter implements Serializable {
         if (file.isDirectory()) {
             return false;
         }
-
-        for (final String wildcard : wildcards) {
-            if (FilenameUtils.wildcardMatch(file.getName(), wildcard)) {
-                return true;
-            }
-        }
-
-        return false;
+        return Stream.of(wildcards).anyMatch(wildcard -> FilenameUtils.wildcardMatch(file.getName(), wildcard));
     }
 
     /**
@@ -151,14 +145,7 @@ public class WildcardFilter extends AbstractFileFilter implements Serializable {
         if (dir != null && new File(dir, name).isDirectory()) {
             return false;
         }
-
-        for (final String wildcard : wildcards) {
-            if (FilenameUtils.wildcardMatch(name, wildcard)) {
-                return true;
-            }
-        }
-
-        return false;
+        return Stream.of(wildcards).anyMatch(wildcard -> FilenameUtils.wildcardMatch(name, wildcard));
     }
 
     /**
@@ -173,14 +160,9 @@ public class WildcardFilter extends AbstractFileFilter implements Serializable {
         if (Files.isDirectory(file)) {
             return FileVisitResult.TERMINATE;
         }
+        return toDefaultFileVisitResult(
+                Stream.of(wildcards).anyMatch(wildcard -> FilenameUtils.wildcardMatch(Objects.toString(file.getFileName(), null), wildcard)));
 
-        for (final String wildcard : wildcards) {
-            if (FilenameUtils.wildcardMatch(Objects.toString(file.getFileName(), null), wildcard)) {
-                return FileVisitResult.CONTINUE;
-            }
-        }
-
-        return FileVisitResult.TERMINATE;
     }
 
 }
diff --git a/src/main/java/org/apache/commons/io/input/ObservableInputStream.java b/src/main/java/org/apache/commons/io/input/ObservableInputStream.java
index e1b3b631..d83ce9c0 100644
--- a/src/main/java/org/apache/commons/io/input/ObservableInputStream.java
+++ b/src/main/java/org/apache/commons/io/input/ObservableInputStream.java
@@ -23,8 +23,10 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.io.function.IOConsumer;
 
 /**
  * The {@link ObservableInputStream} allows, that an InputStream may be consumed by other receivers, apart from the
@@ -172,6 +174,13 @@ public class ObservableInputStream extends ProxyInputStream {
         IOUtils.consume(this);
     }
 
+    private void forEachObserver(final IOConsumer<Observer> action) throws IOException {
+        Objects.requireNonNull(action);
+        for (final Observer t : observers) {
+            action.accept(t);
+        }
+    }
+
     /**
      * Gets all currently registered observers.
      *
@@ -188,9 +197,7 @@ public class ObservableInputStream extends ProxyInputStream {
      * @throws IOException Some observer has thrown an exception, which is being passed down.
      */
     protected void noteClosed() throws IOException {
-        for (final Observer observer : getObservers()) {
-            observer.closed();
-        }
+        forEachObserver(Observer::closed);
     }
 
     /**
@@ -200,9 +207,7 @@ public class ObservableInputStream extends ProxyInputStream {
      * @throws IOException Some observer has thrown an exception, which is being passed down.
      */
     protected void noteDataByte(final int value) throws IOException {
-        for (final Observer observer : getObservers()) {
-            observer.data(value);
-        }
+        forEachObserver(observer -> observer.data(value));
     }
 
     /**
@@ -214,9 +219,7 @@ public class ObservableInputStream extends ProxyInputStream {
      * @throws IOException Some observer has thrown an exception, which is being passed down.
      */
     protected void noteDataBytes(final byte[] buffer, final int offset, final int length) throws IOException {
-        for (final Observer observer : getObservers()) {
-            observer.data(buffer, offset, length);
-        }
+        forEachObserver(observer -> observer.data(buffer, offset, length));
     }
 
     /**
@@ -227,9 +230,7 @@ public class ObservableInputStream extends ProxyInputStream {
      *         exception, which has been passed as an argument.
      */
     protected void noteError(final IOException exception) throws IOException {
-        for (final Observer observer : getObservers()) {
-            observer.error(exception);
-        }
+        forEachObserver(observer -> observer.error(exception));
     }
 
     /**
@@ -238,9 +239,7 @@ public class ObservableInputStream extends ProxyInputStream {
      * @throws IOException Some observer has thrown an exception, which is being passed down.
      */
     protected void noteFinished() throws IOException {
-        for (final Observer observer : getObservers()) {
-            observer.finished();
-        }
+        forEachObserver(Observer::finished);
     }
 
     private void notify(final byte[] buffer, final int offset, final int result, final IOException ioe) throws IOException {
diff --git a/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java b/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
index 9a4b81b0..4384b3b6 100644
--- a/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
+++ b/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
@@ -139,9 +139,7 @@ public final class FileAlterationMonitor implements Runnable {
     @Override
     public void run() {
         while (running) {
-            for (final FileAlterationObserver observer : observers) {
-                observer.checkAndNotify();
-            }
+            observers.forEach(FileAlterationObserver::checkAndNotify);
             if (!running) {
                 break;
             }
diff --git a/src/test/java/org/apache/commons/io/DemuxTest.java b/src/test/java/org/apache/commons/io/DemuxTest.java
index a9da9b09..dfad2830 100644
--- a/src/test/java/org/apache/commons/io/DemuxTest.java
+++ b/src/test/java/org/apache/commons/io/DemuxTest.java
@@ -120,8 +120,7 @@ public class DemuxTest {
 
     private final HashMap<String, Thread> threadMap = new HashMap<>();
 
-    private void doJoin()
-            throws Exception {
+    private void doJoin() throws InterruptedException {
         for (final String name : threadMap.keySet()) {
             final Thread thread = threadMap.get(name);
             thread.join();
@@ -129,10 +128,7 @@ public class DemuxTest {
     }
 
     private void doStart() {
-        for (final String name : threadMap.keySet()) {
-            final Thread thread = threadMap.get(name);
-            thread.start();
-        }
+        threadMap.keySet().forEach(name -> threadMap.get(name).start());
     }
 
     private String getInput(final String threadName) {
diff --git a/src/test/java/org/apache/commons/io/FileUtilsListFilesTest.java b/src/test/java/org/apache/commons/io/FileUtilsListFilesTest.java
index f13ff7c4..9603d73e 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsListFilesTest.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsListFilesTest.java
@@ -20,10 +20,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.stream.Collectors;
 
 import org.apache.commons.io.filefilter.FileFilterUtils;
 import org.apache.commons.io.filefilter.IOFileFilter;
@@ -40,19 +42,13 @@ public class FileUtilsListFilesTest {
     public File temporaryFolder;
 
     private Collection<String> filesToFilenames(final Collection<File> files) {
-        final Collection<String> filenames = new ArrayList<>(files.size());
-        for (final File file : files) {
-            filenames.add(file.getName());
-        }
-        return filenames;
+        return files.stream().map(File::getName).collect(Collectors.toList());
     }
 
     private Collection<String> filesToFilenames(final Iterator<File> files) {
-        final Collection<String> filenames = new ArrayList<>();
-        while (files.hasNext()) {
-            filenames.add(files.next().getName());
-        }
-        return filenames;
+        final Collection<String> fileNames = new ArrayList<>();
+        files.forEachRemaining(f -> fileNames.add(f.getName()));
+        return fileNames;
     }
 
     @SuppressWarnings("ResultOfMethodCallIgnored")
diff --git a/src/test/java/org/apache/commons/io/file/DirectoryStreamFilterTest.java b/src/test/java/org/apache/commons/io/file/DirectoryStreamFilterTest.java
index 6d5bb3e9..60e5442b 100644
--- a/src/test/java/org/apache/commons/io/file/DirectoryStreamFilterTest.java
+++ b/src/test/java/org/apache/commons/io/file/DirectoryStreamFilterTest.java
@@ -55,9 +55,7 @@ public class DirectoryStreamFilterTest {
         final DirectoryStreamFilter streamFilter = new DirectoryStreamFilter(pathFilter);
         assertEquals(pathFilter, streamFilter.getPathFilter());
         try (DirectoryStream<Path> stream = Files.newDirectoryStream(PathUtils.current(), streamFilter)) {
-            for (final Path path : stream) {
-                assertNotEquals(PATH_FIXTURE, path.getFileName().toString());
-            }
+            stream.forEach(path -> assertNotEquals(PATH_FIXTURE, path.getFileName().toString()));
         }
     }
 
diff --git a/src/test/java/org/apache/commons/io/file/spi/FileSystemProvidersTest.java b/src/test/java/org/apache/commons/io/file/spi/FileSystemProvidersTest.java
index ee9fb081..8dc34ec3 100644
--- a/src/test/java/org/apache/commons/io/file/spi/FileSystemProvidersTest.java
+++ b/src/test/java/org/apache/commons/io/file/spi/FileSystemProvidersTest.java
@@ -26,7 +26,6 @@ import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.file.Paths;
 import java.nio.file.spi.FileSystemProvider;
-import java.util.List;
 
 import org.junit.jupiter.api.Test;
 
@@ -36,8 +35,7 @@ public class FileSystemProvidersTest {
 
     @Test
     public void testGetFileSystemProvider_all() throws URISyntaxException {
-        final List<FileSystemProvider> installedProviders = FileSystemProvider.installedProviders();
-        for (final FileSystemProvider fileSystemProvider : installedProviders) {
+        for (final FileSystemProvider fileSystemProvider : FileSystemProvider.installedProviders()) {
             final String scheme = fileSystemProvider.getScheme();
             final URI uri = new URI(scheme, "ssp", "fragment");
             assertEquals(scheme, FileSystemProviders.installed().getFileSystemProvider(uri).getScheme());
diff --git a/src/test/java/org/apache/commons/io/filefilter/AgeFileFilterTest.java b/src/test/java/org/apache/commons/io/filefilter/AgeFileFilterTest.java
index f660e71a..c0ea7941 100644
--- a/src/test/java/org/apache/commons/io/filefilter/AgeFileFilterTest.java
+++ b/src/test/java/org/apache/commons/io/filefilter/AgeFileFilterTest.java
@@ -49,9 +49,6 @@ public class AgeFileFilterTest {
         // We are interested in files older than one day
         final long cutoffMillis = System.currentTimeMillis();
         final String[] files = dir.list(new AgeFileFilter(cutoffMillis));
-        for (final String file : files) {
-            // System.out.println(files[i]);
-        }
         // End of Javadoc example
         assertTrue(files.length > 0);
     }
diff --git a/src/test/java/org/apache/commons/io/filefilter/AndFileFilterTest.java b/src/test/java/org/apache/commons/io/filefilter/AndFileFilterTest.java
index caf4090b..28886bdf 100644
--- a/src/test/java/org/apache/commons/io/filefilter/AndFileFilterTest.java
+++ b/src/test/java/org/apache/commons/io/filefilter/AndFileFilterTest.java
@@ -42,9 +42,7 @@ public class AndFileFilterTest extends ConditionalFileFilterAbstractTest {
   @Override
   protected IOFileFilter buildFilterUsingAdd(final List<IOFileFilter> filters) {
     final AndFileFilter filter = new AndFileFilter();
-    for (final IOFileFilter filter1 : filters) {
-      filter.addFileFilter(filter1);
-    }
+    filters.forEach(filter::addFileFilter);
     return filter;
   }
 
diff --git a/src/test/java/org/apache/commons/io/filefilter/ConditionalFileFilterAbstractTest.java b/src/test/java/org/apache/commons/io/filefilter/ConditionalFileFilterAbstractTest.java
index acbc56dd..daffdb40 100644
--- a/src/test/java/org/apache/commons/io/filefilter/ConditionalFileFilterAbstractTest.java
+++ b/src/test/java/org/apache/commons/io/filefilter/ConditionalFileFilterAbstractTest.java
@@ -85,9 +85,9 @@ public abstract class ConditionalFileFilterAbstractTest extends IOFileFilterAbst
             fileFilter.addFileFilter(filters.get(i));
             assertEquals(i + 1, fileFilter.getFileFilters().size(), "file filters count: ");
         }
-        for (final IOFileFilter filter : fileFilter.getFileFilters()) {
+        fileFilter.getFileFilters().forEach(filter -> {
             assertTrue(filters.contains(filter), "found file filter");
-        }
+        });
         assertEquals(filters.size(), fileFilter.getFileFilters().size(), "file filters count");
     }
 
@@ -175,10 +175,10 @@ public abstract class ConditionalFileFilterAbstractTest extends IOFileFilterAbst
         filters.add(new TesterTrueFileFilter());
         filters.add(new TesterTrueFileFilter());
         filters.add(new TesterTrueFileFilter());
-        for (final TesterTrueFileFilter filter : filters) {
+        filters.forEach(filter -> {
             fileFilter.removeFileFilter(filter);
             assertFalse(fileFilter.getFileFilters().contains(filter), "file filter removed");
-        }
+        });
         assertEquals(0, fileFilter.getFileFilters().size(), "file filters count");
     }
 }
diff --git a/src/test/java/org/apache/commons/io/filefilter/DirectoryFileFilterTest.java b/src/test/java/org/apache/commons/io/filefilter/DirectoryFileFilterTest.java
index 22958a8a..eae17962 100644
--- a/src/test/java/org/apache/commons/io/filefilter/DirectoryFileFilterTest.java
+++ b/src/test/java/org/apache/commons/io/filefilter/DirectoryFileFilterTest.java
@@ -48,9 +48,6 @@ public class DirectoryFileFilterTest {
     public void testJavadocExampleUsingIo() {
         final File dir = FileUtils.current();
         final String[] files = dir.list(DirectoryFileFilter.INSTANCE);
-        for (final String file : files) {
-            // System.out.println(files[i]);
-        }
         // End of Javadoc example
         assertTrue(files.length > 0);
     }
diff --git a/src/test/java/org/apache/commons/io/filefilter/IOFileFilterAbstractTest.java b/src/test/java/org/apache/commons/io/filefilter/IOFileFilterAbstractTest.java
index face2f4f..b4ec8f4d 100644
--- a/src/test/java/org/apache/commons/io/filefilter/IOFileFilterAbstractTest.java
+++ b/src/test/java/org/apache/commons/io/filefilter/IOFileFilterAbstractTest.java
@@ -19,6 +19,8 @@ package org.apache.commons.io.filefilter;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.File;
+import java.util.Objects;
+import java.util.stream.Stream;
 
 public abstract class IOFileFilterAbstractTest {
 
@@ -129,18 +131,10 @@ public abstract class IOFileFilterAbstractTest {
     }
 
     public static void resetFalseFilters(final TesterFalseFileFilter[] filters) {
-        for (final TesterFalseFileFilter filter : filters) {
-            if (filter != null) {
-                filter.reset();
-            }
-        }
+        Stream.of(filters).filter(Objects::nonNull).forEach(TesterFalseFileFilter::reset);
     }
 
     public static void resetTrueFilters(final TesterTrueFileFilter[] filters) {
-        for (final TesterTrueFileFilter filter : filters) {
-            if (filter != null) {
-                filter.reset();
-            }
-        }
+        Stream.of(filters).filter(Objects::nonNull).forEach(TesterTrueFileFilter::reset);
     }
 }
diff --git a/src/test/java/org/apache/commons/io/filefilter/NameFileFilterTest.java b/src/test/java/org/apache/commons/io/filefilter/NameFileFilterTest.java
index 09162b1d..cca9c678 100644
--- a/src/test/java/org/apache/commons/io/filefilter/NameFileFilterTest.java
+++ b/src/test/java/org/apache/commons/io/filefilter/NameFileFilterTest.java
@@ -48,9 +48,6 @@ public class NameFileFilterTest {
     public void testJavadocExampleUsingIo() {
         final File dir = FileUtils.current();
         final String[] files = dir.list(new NameFileFilter("NOTICE.txt"));
-        for (final String file : files) {
-            // System.out.println(file);
-        }
         // End of Javadoc example
         assertEquals(1, files.length);
     }
diff --git a/src/test/java/org/apache/commons/io/filefilter/OrFileFilterTest.java b/src/test/java/org/apache/commons/io/filefilter/OrFileFilterTest.java
index 719e4352..932bca08 100644
--- a/src/test/java/org/apache/commons/io/filefilter/OrFileFilterTest.java
+++ b/src/test/java/org/apache/commons/io/filefilter/OrFileFilterTest.java
@@ -38,9 +38,7 @@ public class OrFileFilterTest extends ConditionalFileFilterAbstractTest {
   @Override
   protected IOFileFilter buildFilterUsingAdd(final List<IOFileFilter> filters) {
     final OrFileFilter filter = new OrFileFilter();
-    for (final IOFileFilter filter1 : filters) {
-      filter.addFileFilter(filter1);
-    }
+    filters.forEach(filter::addFileFilter);
     return filter;
   }
 
diff --git a/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTest.java b/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTest.java
index 8972595c..b7bc3e28 100644
--- a/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTest.java
+++ b/src/test/java/org/apache/commons/io/monitor/FileAlterationMonitorTest.java
@@ -195,9 +195,7 @@ public class FileAlterationMonitorTest extends AbstractMonitorTest {
         Thread.sleep(10); // wait until the watcher thread enters Thread.sleep()
         monitor.stop(100);
 
-        for (final Thread thread : createdThreads) {
-            assertFalse(thread.isAlive(), "The FileAlterationMonitor did not stop the threads it created.");
-        }
+        createdThreads.forEach(thread -> assertFalse(thread.isAlive(), "The FileAlterationMonitor did not stop the threads it created."));
     }
 
     /**