All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.commons.io.file.FilesUncheck Maven / Gradle / Ivy

There is a newer version: 2024.11.18751.20241128T090041Z-241100
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.commons.io.file;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.io.UncheckedIOException;
import java.nio.channels.SeekableByteChannel;
import java.nio.charset.Charset;
import java.nio.file.CopyOption;
import java.nio.file.DirectoryStream;
import java.nio.file.FileStore;
import java.nio.file.FileVisitOption;
import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.OpenOption;
import java.nio.file.Path;
import java.nio.file.attribute.BasicFileAttributes;
import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.FileTime;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.UserPrincipal;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.BiPredicate;
import java.util.stream.Stream;

import org.apache.commons.io.function.Uncheck;

/**
 * Delegates to {@link Files} to uncheck calls by throwing {@link UncheckedIOException} instead of {@link IOException}.
 *
 * @see Files
 * @see IOException
 * @see UncheckedIOException
 * @since 2.12.0
 */
public final class FilesUncheck {

    /**
     * Delegates to {@link Files#copy(InputStream, Path, CopyOption...)} throwing {@link UncheckedIOException} instead of
     * {@link IOException}.
     *
     * @param in See delegate.
     * @param target See delegate.
     * @param options See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     * @see Files#copy(InputStream, Path,CopyOption...)
     */
    public static long copy(final InputStream in, final Path target, final CopyOption... options) {
        return Uncheck.apply(Files::copy, in, target, options);
    }

    /**
     * Delegates to {@link Files#copy(Path, OutputStream)} throwing {@link UncheckedIOException} instead of
     * {@link IOException}.
     *
     * @param source See delegate. See delegate.
     * @param out See delegate. See delegate.
     * @return See delegate. See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static long copy(final Path source, final OutputStream out) {
        return Uncheck.apply(Files::copy, source, out);
    }

    /**
     * Delegates to {@link Files#copy(Path, Path, CopyOption...)} throwing {@link UncheckedIOException} instead of
     * {@link IOException}.
     *
     * @param source See delegate.
     * @param target See delegate.
     * @param options See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path copy(final Path source, final Path target, final CopyOption... options) {
        return Uncheck.apply(Files::copy, source, target, options);
    }

    /**
     * Delegates to {@link Files#createDirectories(Path, FileAttribute...)} throwing {@link UncheckedIOException} instead of
     * {@link IOException}.
     *
     * @param dir See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createDirectories(final Path dir, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createDirectories, dir, attrs);
    }

    /**
     * Delegates to {@link Files#createDirectory(Path, FileAttribute...)} throwing {@link UncheckedIOException} instead of
     * {@link IOException}.
     *
     * @param dir See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createDirectory(final Path dir, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createDirectory, dir, attrs);
    }

    /**
     * Delegates to {@link Files#createFile(Path, FileAttribute...)} throwing {@link UncheckedIOException} instead of
     * {@link IOException}.
     *
     * @param path See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createFile(final Path path, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createFile, path, attrs);
    }

    /**
     * Delegates to {@link Files#createLink(Path, Path)} throwing {@link UncheckedIOException} instead of
     * {@link IOException}.
     *
     * @param link See delegate.
     * @param existing See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createLink(final Path link, final Path existing) {
        return Uncheck.apply(Files::createLink, link, existing);
    }

    /**
     * Delegates to {@link Files#createSymbolicLink(Path, Path, FileAttribute...)} throwing {@link UncheckedIOException}
     * instead of {@link IOException}.
     *
     * @param link See delegate.
     * @param target See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createSymbolicLink(final Path link, final Path target, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createSymbolicLink, link, target, attrs);
    }

    /**
     * Delegates to {@link Files#createTempDirectory(Path, String, FileAttribute...)} throwing {@link UncheckedIOException}
     * instead of {@link IOException}.
     *
     * @param dir See delegate.
     * @param prefix See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createTempDirectory(final Path dir, final String prefix, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createTempDirectory, dir, prefix, attrs);
    }

    /**
     * Delegates to {@link Files#createTempDirectory(String, FileAttribute...)} throwing {@link UncheckedIOException}
     * instead of {@link IOException}.
     *
     * @param prefix See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createTempDirectory(final String prefix, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createTempDirectory, prefix, attrs);
    }

    /**
     * Delegates to {@link Files#createTempFile(Path, String, String, FileAttribute...)} throwing
     * {@link UncheckedIOException} instead of {@link IOException}.
     *
     * @param dir See delegate.
     * @param prefix See delegate.
     * @param suffix See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createTempFile(final Path dir, final String prefix, final String suffix, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createTempFile, dir, prefix, suffix, attrs);
    }

    /**
     * Delegates to {@link Files#createTempFile(String, String, FileAttribute...)} throwing {@link UncheckedIOException}
     * instead of {@link IOException}.
     *
     * @param prefix See delegate.
     * @param suffix See delegate.
     * @param attrs See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static Path createTempFile(final String prefix, final String suffix, final FileAttribute... attrs) {
        return Uncheck.apply(Files::createTempFile, prefix, suffix, attrs);
    }

    /**
     * Delegates to {@link Files#delete(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}.
     *
     * @param path See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static void delete(final Path path) {
        Uncheck.accept(Files::delete, path);
    }

    /**
     * Delegates to {@link Files#deleteIfExists(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}.
     *
     * @param path See delegate.
     * @return See delegate.
     * @throws UncheckedIOException Wraps an {@link IOException}.
     */
    public static boolean deleteIfExists(final Path path) {
        return Uncheck.apply(Files::deleteIfExists, path);
    }

    /**
     * Delegates to {@link Files#find(Path, int, BiPredicate, FileVisitOption...)} throwing {@link UncheckedIOException} instead of {@link IOException}.
     * 

* The returned {@link Stream} wraps a {@link DirectoryStream}. When you require timely disposal of file system resources, use a {@code try}-with-resources * block to ensure invocation of the stream's {@link Stream#close()} method after the stream operations are completed. *

* * @param start See delegate. * @param maxDepth See delegate. * @param matcher See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. * @since 2.14.0 */ public static Stream find(final Path start, final int maxDepth, final BiPredicate matcher, final FileVisitOption... options) { return Uncheck.apply(Files::find, start, maxDepth, matcher, options); } /** * Delegates to {@link Files#getAttribute(Path, String, LinkOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param attribute See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static Object getAttribute(final Path path, final String attribute, final LinkOption... options) { return Uncheck.apply(Files::getAttribute, path, attribute, options); } /** * Delegates to {@link Files#getFileStore(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. * * @param path See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static FileStore getFileStore(final Path path) { return Uncheck.apply(Files::getFileStore, path); } /** * Delegates to {@link Files#getLastModifiedTime(Path, LinkOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static FileTime getLastModifiedTime(final Path path, final LinkOption... options) { return Uncheck.apply(Files::getLastModifiedTime, path, options); } /** * Delegates to {@link Files#getOwner(Path, LinkOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static UserPrincipal getOwner(final Path path, final LinkOption... options) { return Uncheck.apply(Files::getOwner, path, options); } /** * Delegates to {@link Files#getPosixFilePermissions(Path, LinkOption...)} throwing {@link UncheckedIOException} instead * of {@link IOException}. * * @param path See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static Set getPosixFilePermissions(final Path path, final LinkOption... options) { return Uncheck.apply(Files::getPosixFilePermissions, path, options); } /** * Delegates to {@link Files#isHidden(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. * * @param path See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static boolean isHidden(final Path path) { return Uncheck.apply(Files::isHidden, path); } /** * Delegates to {@link Files#isSameFile(Path, Path)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param path2 See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static boolean isSameFile(final Path path, final Path path2) { return Uncheck.apply(Files::isSameFile, path, path2); } /** * Delegates to {@link Files#lines(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. *

* The returned {@link Stream} wraps a {@link Reader}. When you require timely disposal of file system resources, use a {@code try}-with-resources block to * ensure invocation of the stream's {@link Stream#close()} method after the stream operations are completed. *

* * @param path See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static Stream lines(final Path path) { return Uncheck.apply(Files::lines, path); } /** * Delegates to {@link Files#lines(Path, Charset)} throwing {@link UncheckedIOException} instead of {@link IOException}. *

* The returned {@link Stream} wraps a {@link Reader}. When you require timely disposal of file system resources, use a {@code try}-with-resources block to * ensure invocation of the stream's {@link Stream#close()} method after the stream operations are completed. *

* * @param path See delegate. * @param cs See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static Stream lines(final Path path, final Charset cs) { return Uncheck.apply(Files::lines, path, cs); } /** * Delegates to {@link Files#list(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. *

* The returned {@link Stream} wraps a {@link DirectoryStream}. When you require timely disposal of file system resources, use a {@code try}-with-resources * block to ensure invocation of the stream's {@link Stream#close()} method after the stream operations are completed. *

* * @param dir See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static Stream list(final Path dir) { return Uncheck.apply(Files::list, dir); } /** * Delegates to {@link Files#move(Path, Path, CopyOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param source See delegate. * @param target See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static Path move(final Path source, final Path target, final CopyOption... options) { return Uncheck.apply(Files::move, source, target, options); } /** * Delegates to {@link Files#newBufferedReader(Path)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static BufferedReader newBufferedReader(final Path path) { return Uncheck.apply(Files::newBufferedReader, path); } /** * Delegates to {@link Files#newBufferedReader(Path, Charset)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param cs See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static BufferedReader newBufferedReader(final Path path, final Charset cs) { return Uncheck.apply(Files::newBufferedReader, path, cs); } /** * Delegates to {@link Files#newBufferedWriter(Path, Charset, OpenOption...)} throwing {@link UncheckedIOException} * instead of {@link IOException}. * * @param path See delegate. * @param cs See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static BufferedWriter newBufferedWriter(final Path path, final Charset cs, final OpenOption... options) { return Uncheck.apply(Files::newBufferedWriter, path, cs, options); } /** * Delegates to {@link Files#newBufferedWriter(Path, OpenOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static BufferedWriter newBufferedWriter(final Path path, final OpenOption... options) { return Uncheck.apply(Files::newBufferedWriter, path, options); } /** * Delegates to {@link Files#newByteChannel(Path, OpenOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param options See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static SeekableByteChannel newByteChannel(final Path path, final OpenOption... options) { return Uncheck.apply(Files::newByteChannel, path, options); } /** * Delegates to {@link Files#newByteChannel(Path, Set, FileAttribute...)} throwing {@link UncheckedIOException} instead * of {@link IOException}. * * @param path See delegate. * @param options See delegate. * @param attrs See delegate. * @return See delegate. * @throws UncheckedIOException Wraps an {@link IOException}. */ public static SeekableByteChannel newByteChannel(final Path path, final Set options, final FileAttribute... attrs) { return Uncheck.apply(Files::newByteChannel, path, options, attrs); } /** * Delegates to {@link Files#newDirectoryStream(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. *

* If you don't use the try-with-resources construct, then you must call the stream's {@link Stream#close()} method after iteration is complete to free any * resources held for the open directory. *

* * @param dir See delegate. * @return See delegate. */ public static DirectoryStream newDirectoryStream(final Path dir) { return Uncheck.apply(Files::newDirectoryStream, dir); } /** * Delegates to {@link Files#newDirectoryStream(Path, java.nio.file.DirectoryStream.Filter)} throwing {@link UncheckedIOException} instead of * {@link IOException}. *

* If you don't use the try-with-resources construct, then you must call the stream's {@link Stream#close()} method after iteration is complete to free any * resources held for the open directory. *

* * @param dir See delegate. * @param filter See delegate. * @return See delegate. */ public static DirectoryStream newDirectoryStream(final Path dir, final DirectoryStream.Filter filter) { return Uncheck.apply(Files::newDirectoryStream, dir, filter); } /** * Delegates to {@link Files#newDirectoryStream(Path, String)} throwing {@link UncheckedIOException} instead of * {@link IOException}. *

* The returned {@link Stream} wraps a {@link DirectoryStream}. When you require timely disposal of file system resources, use a {@code try}-with-resources * block to ensure invocation of the stream's {@link Stream#close()} method after the stream operations are completed. *

* * @param dir See delegate. * @param glob See delegate. * @return See delegate. */ public static DirectoryStream newDirectoryStream(final Path dir, final String glob) { return Uncheck.apply(Files::newDirectoryStream, dir, glob); } /** * Delegates to {@link Files#newInputStream(Path, OpenOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param options See delegate. * @return See delegate. */ public static InputStream newInputStream(final Path path, final OpenOption... options) { return Uncheck.apply(Files::newInputStream, path, options); } /** * Delegates to {@link Files#newOutputStream(Path, OpenOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param options See delegate. * @return See delegate. */ public static OutputStream newOutputStream(final Path path, final OpenOption... options) { return Uncheck.apply(Files::newOutputStream, path, options); } /** * Delegates to {@link Files#probeContentType(Path)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @return See delegate. */ public static String probeContentType(final Path path) { return Uncheck.apply(Files::probeContentType, path); } /** * Delegates to {@link Files#readAllBytes(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. * * @param path See delegate. * @return See delegate. */ public static byte[] readAllBytes(final Path path) { return Uncheck.apply(Files::readAllBytes, path); } /** * Delegates to {@link Files#readAllLines(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. * * @param path See delegate. * @return See delegate. */ public static List readAllLines(final Path path) { return Uncheck.apply(Files::readAllLines, path); } /** * Delegates to {@link Files#readAllLines(Path, Charset)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param cs See delegate. * @return See delegate. */ public static List readAllLines(final Path path, final Charset cs) { return Uncheck.apply(Files::readAllLines, path, cs); } /** * Delegates to {@link Files#readAttributes(Path, Class, LinkOption...)} throwing {@link UncheckedIOException} instead * of {@link IOException}. * * @param See delegate. * @param path See delegate. * @param type See delegate. * @param options See delegate. * @return See delegate. */ public static A readAttributes(final Path path, final Class type, final LinkOption... options) { return Uncheck.apply(Files::readAttributes, path, type, options); } /** * Delegates to {@link Files#readAttributes(Path, String, LinkOption...)} throwing {@link UncheckedIOException} instead * of {@link IOException}. * * @param path See delegate. * @param attributes See delegate. * @param options See delegate. * @return See delegate. */ public static Map readAttributes(final Path path, final String attributes, final LinkOption... options) { return Uncheck.apply(Files::readAttributes, path, attributes, options); } /** * Delegates to {@link Files#readSymbolicLink(Path)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param link See delegate. * @return See delegate. */ public static Path readSymbolicLink(final Path link) { return Uncheck.apply(Files::readSymbolicLink, link); } /** * Delegates to {@link Files#setAttribute(Path, String, Object, LinkOption...)} throwing {@link UncheckedIOException} * instead of {@link IOException}. * * @param path See delegate. * @param attribute See delegate. * @param value See delegate. * @param options See delegate. * @return See delegate. */ public static Path setAttribute(final Path path, final String attribute, final Object value, final LinkOption... options) { return Uncheck.apply(Files::setAttribute, path, attribute, value, options); } /** * Delegates to {@link Files#setLastModifiedTime(Path, FileTime)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param time See delegate. * @return See delegate. */ public static Path setLastModifiedTime(final Path path, final FileTime time) { return Uncheck.apply(Files::setLastModifiedTime, path, time); } /** * Delegates to {@link Files#setOwner(Path, UserPrincipal)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param owner See delegate. * @return See delegate. */ public static Path setOwner(final Path path, final UserPrincipal owner) { return Uncheck.apply(Files::setOwner, path, owner); } /** * Delegates to {@link Files#setPosixFilePermissions(Path, Set)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param perms See delegate. * @return See delegate. */ public static Path setPosixFilePermissions(final Path path, final Set perms) { return Uncheck.apply(Files::setPosixFilePermissions, path, perms); } /** * Delegates to {@link Files#size(Path)} throwing {@link UncheckedIOException} instead of {@link IOException}. * * @param path See delegate. * @return See delegate. */ public static long size(final Path path) { return Uncheck.apply(Files::size, path); } /** * Delegates to {@link Files#walk(Path, FileVisitOption...)} throwing {@link UncheckedIOException} instead of {@link IOException}. *

* The returned {@link Stream} may wrap one or more {@link DirectoryStream}s. When you require timely disposal of file system resources, use a * {@code try}-with-resources block to ensure invocation of the stream's {@link Stream#close()} method after the stream operations are completed. Calling a * closed stream causes a {@link IllegalStateException}. *

* * @param start See delegate. * @param options See delegate. * @return See delegate. */ public static Stream walk(final Path start, final FileVisitOption... options) { return Uncheck.apply(Files::walk, start, options); } /** * Delegates to {@link Files#walk(Path, int, FileVisitOption...)} throwing {@link UncheckedIOException} instead of {@link IOException}. *

* The returned {@link Stream} may wrap one or more {@link DirectoryStream}s. When you require timely disposal of file system resources, use a * {@code try}-with-resources block to ensure invocation of the stream's {@link Stream#close()} method after the stream operations are completed. Calling a * closed stream causes a {@link IllegalStateException}. *

* * @param start See delegate. * @param maxDepth See delegate. * @param options See delegate. * @return See delegate. */ public static Stream walk(final Path start, final int maxDepth, final FileVisitOption... options) { return Uncheck.apply(Files::walk, start, maxDepth, options); } /** * Delegates to {@link Files#walkFileTree(Path, FileVisitor)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param start See delegate. * @param visitor See delegate. * @return See delegate. */ public static Path walkFileTree(final Path start, final FileVisitor visitor) { return Uncheck.apply(Files::walkFileTree, start, visitor); } /** * Delegates to {@link Files#walkFileTree(Path, Set, int, FileVisitor)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param start See delegate. * @param options See delegate. * @param maxDepth See delegate. * @param visitor See delegate. * @return See delegate. */ public static Path walkFileTree(final Path start, final Set options, final int maxDepth, final FileVisitor visitor) { return Uncheck.apply(Files::walkFileTree, start, options, maxDepth, visitor); } /** * Delegates to {@link Files#write(Path, byte[], OpenOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param bytes See delegate. * @param options See delegate. * @return See delegate. */ public static Path write(final Path path, final byte[] bytes, final OpenOption... options) { return Uncheck.apply(Files::write, path, bytes, options); } /** * Delegates to {@link Files#write(Path, Iterable, Charset, OpenOption...)} throwing {@link UncheckedIOException} * instead of {@link IOException}. * * @param path See delegate. * @param lines See delegate. * @param cs See delegate. * @param options See delegate. * @return See delegate. */ public static Path write(final Path path, final Iterable lines, final Charset cs, final OpenOption... options) { return Uncheck.apply(Files::write, path, lines, cs, options); } /** * Delegates to {@link Files#write(Path, Iterable, OpenOption...)} throwing {@link UncheckedIOException} instead of * {@link IOException}. * * @param path See delegate. * @param lines See delegate. * @param options See delegate. * @return See delegate. */ public static Path write(final Path path, final Iterable lines, final OpenOption... options) { return Uncheck.apply(Files::write, path, lines, options); } /** * No instances. */ private FilesUncheck() { // No instances } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy