Skip to content

Latest commit

 

History

History
70 lines (52 loc) · 2.03 KB

File metadata and controls

70 lines (52 loc) · 2.03 KB

Lambda

throw IOException

import java.io.IOException;
import java.nio.file.FileStore;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.util.function.Consumer;

@FunctionalInterface
public interface ThrowingConsumer<T> extends Consumer<T> {

    @Override
    default void accept(final T elem) {
        try {
            acceptThrows(elem);
        } catch (final Exception e) {
            // Implement your own exception handling logic here..
            // For example:
//            System.out.println("handling an exception...");
            // Or ...
            throw new RuntimeException(e);
        }
    }

    void acceptThrows(T elem) throws Exception;

}

void main(String[] args) throws IOException {

    FileSystem fileSystem = FileSystems.getDefault();

    System.out.printf("%30s | %10s | %23s | %20s \n", "", "Type", "Total space", "Free space");
    System.out.println("-------------------------------------------------"
            + "----------------------------------------------------------");

    Iterable<FileStore> fileStores = fileSystem.getFileStores();

//    for (var fileStore : fileStores) {
//        System.out.printf("%30s | %10s | %20s GB | %20s GB\n", fileStore, fileStore.type(),
//                (fileStore.getTotalSpace() / 1073741824f),
//                (fileStore.getUsableSpace() / 1073741824f));
//    }

    fileStores.forEach((ThrowingConsumer<FileStore>) fileStore -> {

            System.out.printf("%30s | %10s | %20s GB | %20s GB\n", fileStore, fileStore.type(),
                    (fileStore.getTotalSpace() / 1073741824f),
                    (fileStore.getUsableSpace() / 1073741824f));
        });
}




//class MyConsumer implements Consumer<FileStore>
//{
//
//    @Override
//    public void accept(FileStore fileStore) throws IOException {
//        System.out.printf("%30s | %10s | %20s GB | %20s GB\n", fileStore, fileStore.type(),
//                (fileStore.getTotalSpace() / 1073741824f),
//                (fileStore.getUsableSpace() / 1073741824f));
//    }
//}