← Back to Learn
Intermediate
File I/O & Streams
Learn to read and write files, work with directories, and process data streams in Java.
Topics
File I/O & Streams
Working with Files
The File class represents file and directory paths. It provides methods to check file properties and perform file operations.
File Operations
import java.io.File;
import java.io.IOException;
public class FileOperations {
public static void main(String[] args) {
// Create a File object
File file = new File("example.txt");
try {
// Create a new file
if (file.createNewFile()) {
System.out.println("File created: " + file.getName());
} else {
System.out.println("File already exists");
}
} catch (IOException e) {
System.out.println("Error creating file");
e.printStackTrace();
}
// Check if file exists
if (file.exists()) {
System.out.println("File exists!");
// Get file information
System.out.println("Name: " + file.getName());
System.out.println("Absolute path: " + file.getAbsolutePath());
System.out.println("Size: " + file.length() + " bytes");
System.out.println("Can read: " + file.canRead());
System.out.println("Can write: " + file.canWrite());
System.out.println("Is file: " + file.isFile());
System.out.println("Is directory: " + file.isDirectory());
}
// Delete file
if (file.delete()) {
System.out.println("File deleted");
}
}
}Working with Directories
import java.io.File;
public class DirectoryOperations {
public static void main(String[] args) {
// Create a directory
File dir = new File("myFolder");
if (dir.mkdir()) {
System.out.println("Directory created");
}
// Create nested directories
File nestedDir = new File("parent/child/grandchild");
if (nestedDir.mkdirs()) {
System.out.println("Nested directories created");
}
// List files in a directory
File currentDir = new File(".");
String[] files = currentDir.list();
System.out.println("Files in current directory:");
for (String filename : files) {
System.out.println(filename);
}
// List files with File objects
File[] fileObjects = currentDir.listFiles();
for (File f : fileObjects) {
if (f.isDirectory()) {
System.out.println("[DIR] " + f.getName());
} else {
System.out.println("[FILE] " + f.getName());
}
}
}
}