The library provides an abstract interface to tasks that would normally depend heavily on the hardware and operating system, such as network access and file access . Some underlying platforms may not support all of the features a Java application expects.