PacktLib: Java 7 New Features Cookbook

Java 7 New Features Cookbook


About the Authors


About the Reviewers


Java Language Improvements


Using string literals in switch statements

Using underscores in literals to improve code readability

Using the try-with-resources block to improve exception handling code

Creating a resource that can be used with the try-with-resources technique

Catching multiple exception types to improve type checking

Rethrowing exceptions in Java 7

Using the diamond operator for constructor type inference

Using the @SafeVarargs annotation

Locating Files and Directories Using Paths


Creating a Path object

Interoperability between and java.nio.file.Files

Converting a relative path into an absolute path

Removing redundancies by normalizing a path

Combining paths using path resolution

Creating a path between two locations

Converting between path types

Determining whether two paths are equivalent

Managing symbolic links

Obtaining File and Directory Information


Determining the file content type

Obtaining a single attribute at a time using the getAttribute method

Obtaining a map of file attributes

Getting file and directory information

Determining operating system support for attribute views

Maintaining basic file attributes using the BasicFileAttributeView

Maintaining POSIX file attributes using the PosixFileAttributeView

Maintaining FAT table attributes using the DosFileAttributeView

Maintaining file ownership attributes using the FileOwnerAttributeView

Maintaining a file's ACL using the AclFileAttributeView

Maintaining user-defined file attributes using the UserDefinedFileAttributeView

Managing Files and Directories


Creating files and directories

Controlling how a file is copied

Managing temporary files and directories

Setting time-related attributes of a file or directory

Managing file ownership

Managing ACL file permissions

Managing POSIX attributes

Moving a file and a directory

Deleting files or directories

Managing symbolic links

Managing Filesystems


Getting FileStore information

Getting Filesystem information

Using the SimpleFileVisitor class to traverse filesystems

Deleting a directory using the SimpleFileVisitor class

Copying a directory using the SimpleFileVisitor class

Processing the contents of a directory by using the DirectoryStream interface

Filtering a directory using globbing

Writing your own directory filter

Monitoring file events using WatchEvents

Understanding the ZIP filesystem provider

Stream IO in Java 7


Managing simple files

Using buffered IO for files

Graphical User Interface Improvements


Mixing heavyweight and lightweight components

Managing window types

Managing the opacity of a window

Creating a varying gradient translucent window

Managing the shape of a window

Using the new border types in Java 7

Handling multiple file selection in the FileDialog class

Controlling the print dialog box type

Using the new JLayer decorator for a password field

Handling Events


Managing extra mouse buttons and high resolution mouse wheels

Controlling a focus when displaying a window

Using secondary loops to mimic modal dialog boxes

Handling spurious thread wakeups

Handling applet initialization status with event handlers

Database, Security, and System Enhancements


Using the RowSetFactory class

Java 7 database enhancements

Using the ExtendedSSLSession interface

Using the platform MXBeans for JVM or system process load monitoring

Redirecting input and output from operating system's processes

Embedding a JNLP file in an HTML page

Concurrent Processing


Using join/fork framework in Java

Using the reusable synchronization barrier Phaser

Using the new ConcurrentLinkedDeque safely with multiple threads

Using the new LinkedTransferQueue class

Supporting multiple threads using the ThreadLocalRandom class

Odds and Ends


Handling weeks in Java 7

Using the Currency class in Java 7

Using the NumericShaper.Range enumeration to support the display of digits

JavaBean enhancements in Java 7

Handling locales and the Locale.Builder class in Java 7

Handling null references

Using the new BitSet methods in Java 7