Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
IO Package in Java
File class
Class File provides information about
Files and directories
The class provides
A constructor with a String argument
Specifying the name of a file or directory
The name can be either an absolute path or a relative path
Methods of the File class
Methods of the File class
(cont’d)
FileFilter interface
FileFilter
Used for filtering the set of files shown to the user
Method
boolean accept(File pathName)
Tests whether or not the file is acceptable
Used in conjunction with
File[] listFiles method of the File class
To list files satisfying a given filter
NIO Package in Java
Core components
NIO has two pillars
Channels
Buffers
Channels
Channel is similar to a stream but
Is bidirectional unlike a stream
And always read from and write to a buffer
Some channel implementations in Java NIO include
FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel
Buffers
Buffer is
A Buffer is typically used as
A container that can hold a finite number of elements
Write data to the buffer
Call the flip method
Read data out of the buffer
Either call the clear method or the compact method
Types of buffers:
ByteBuffer, CharBuffer, DoubleBuffer
FloatBuffer, IntBuffer, LongBuffer
Properties of Buffers
Buffers have 3 main properties
Capacity
Position
Limit
clear method
position=0
 limit =
capacity
compact method
limit=capacity
 position=
position of last unread data + 1
NIO package
File information can also be retrieved using
Classes of the sub-packages of the java.nio package
In particular, the following classes can be used:
Path
Paths
provides static methods used to create a Path object
Files
Objects represent the location of a file or directory
provides static methods for common file and directory manipulations
DirectoryStream
enables a program to list the content of a directory
Path class
Path is
a programmatic representation of a path in file system
used to examine, locate, and manipulate files
composed of methods that can among other things
obtain information about path through getFileName()
compare two paths using the equals() method
instantiated by means of the get method of the Paths class
Example: Path p = Paths.get(“sample.txt”);
Files class
Files
provides support for common file and directory manipulations
exists(Path)
Verifies existence of a file or a directory
isReadable(Path), isWritable(Path), isExecutable(Path)
Checks file accessibility
isSameFile(Path, Path)
Checks whether two paths locate the same file
delete(Path) and deleteIfExists(Path)
Delete files or directories
copy(Path, Path)and move(Path, Path)
Copy and move files or directories
Files class (cont’d)
Files
allows for management of meta-data
size(Path)
size of specified file in bytes
isDirectory(Path)
returns true if specified path is a directory
getLastModifiedTime(Path)
File’s last modified time
getOwner(Path)
Owner of specified file
readAttributes(Path, Class)
Reads attributes of a file in one bulk operation
Basic File Attributes (Example)
Path file = ...;
BasicFileAttributes attr = Files.readAttributes(file,
BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " +
attr.lastModifiedTime());
System.out.println("isDirectory: " + attr.isDirectory());
System.out.println("size: " + attr.size());
Reading, writing and creating
files using Files class
Buffered I/O methods for text files in Files class
newBufferedReader(Path, Charset)
 opens a file for reading returning a BufferedReader
Example:
Charset charset = Charset.forName(“US-ASCII”);
BufferedReader reader = Files.newBufferedReader(file, charset);
newBufferedWriter(Path, Charset)
 returns a BufferedWriter
Example:
Charset charset = Charset.forName(“US-ASCII”);
BufferedWriter writer = Files.newBufferedWriter(file, charset);
Reading, writing and creating
files using Files class (cont’d)
Unbuffered I/O methods for text files in Files class
newInputStream(Path, OpenOption...)
 returns an InputStream for reading bytes from file
Example:
InputStream in = Files.newInputStream(file);
newOutputStream(Path, Charset)
 returns a OutputStream
Example:
OutputStream out = Files.newOutputStream(file);