FilesUncheck.java
- /*
- * 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}.
- * <p>
- * 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.
- * </p>
- *
- * @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<Path> find(final Path start, final int maxDepth, final BiPredicate<Path, BasicFileAttributes> 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<PosixFilePermission> 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}.
- * <p>
- * 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.
- * </p>
- *
- * @param path See delegate.
- * @return See delegate.
- * @throws UncheckedIOException Wraps an {@link IOException}.
- */
- public static Stream<String> lines(final Path path) {
- return Uncheck.apply(Files::lines, path);
- }
- /**
- * Delegates to {@link Files#lines(Path, Charset)} throwing {@link UncheckedIOException} instead of {@link IOException}.
- * <p>
- * 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.
- * </p>
- *
- * @param path See delegate.
- * @param cs See delegate.
- * @return See delegate.
- * @throws UncheckedIOException Wraps an {@link IOException}.
- */
- public static Stream<String> 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}.
- * <p>
- * 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.
- * </p>
- *
- * @param dir See delegate.
- * @return See delegate.
- * @throws UncheckedIOException Wraps an {@link IOException}.
- */
- public static Stream<Path> 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<? extends OpenOption> 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}.
- * <p>
- * 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.
- * </p>
- *
- * @param dir See delegate.
- * @return See delegate.
- */
- public static DirectoryStream<Path> 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}.
- * <p>
- * 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.
- * </p>
- *
- * @param dir See delegate.
- * @param filter See delegate.
- * @return See delegate.
- */
- public static DirectoryStream<Path> newDirectoryStream(final Path dir, final DirectoryStream.Filter<? super Path> filter) {
- return Uncheck.apply(Files::newDirectoryStream, dir, filter);
- }
- /**
- * Delegates to {@link Files#newDirectoryStream(Path, String)} throwing {@link UncheckedIOException} instead of
- * {@link IOException}.
- * <p>
- * 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.
- * </p>
- *
- * @param dir See delegate.
- * @param glob See delegate.
- * @return See delegate.
- */
- public static DirectoryStream<Path> 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<String> 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<String> 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 <A> See delegate.
- * @param path See delegate.
- * @param type See delegate.
- * @param options See delegate.
- * @return See delegate.
- */
- public static <A extends BasicFileAttributes> A readAttributes(final Path path, final Class<A> 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<String, Object> 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<PosixFilePermission> 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}.
- * <p>
- * 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}.
- * </p>
- *
- * @param start See delegate.
- * @param options See delegate.
- * @return See delegate.
- */
- public static Stream<Path> 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}.
- * <p>
- * 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}.
- * </p>
- *
- * @param start See delegate.
- * @param maxDepth See delegate.
- * @param options See delegate.
- * @return See delegate.
- */
- public static Stream<Path> 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<? super Path> 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<FileVisitOption> options, final int maxDepth, final FileVisitor<? super Path> 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<? extends CharSequence> 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<? extends CharSequence> lines, final OpenOption... options) {
- return Uncheck.apply(Files::write, path, lines, options);
- }
- /**
- * No instances.
- */
- private FilesUncheck() {
- // No instances
- }
- }