File Manipulation Techniques
File Reading Strategies
Reading Text Files
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;
public class FileReader {
// Read entire file as string
public static void readWholeFile() throws IOException {
String content = Files.readString(Paths.get("/home/labex/example.txt"));
}
// Read file line by line
public static void readLineByLine() throws IOException {
List<String> lines = Files.readAllLines(Paths.get("/home/labex/example.txt"));
lines.forEach(System.out::println);
}
}
Reading Binary Files
public class BinaryFileReader {
public static byte[] readBinaryFile() throws IOException {
return Files.readAllBytes(Paths.get("/home/labex/data.bin"));
}
}
File Writing Techniques
graph TD
A[File Writing Methods] --> B[Write Entire Content]
A --> C[Append to File]
A --> D[Write Line by Line]
A --> E[Write Binary Data]
Writing Text Files
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
public class FileWriter {
// Write entire content
public static void writeWholeFile() throws IOException {
Files.writeString(
Paths.get("/home/labex/output.txt"),
"Hello, LabEx!"
);
}
// Append to file
public static void appendToFile() throws IOException {
Files.writeString(
Paths.get("/home/labex/log.txt"),
"New log entry\n",
StandardOpenOption.APPEND
);
}
}
File Manipulation Operations
Operation |
Method |
Description |
Copy |
Files.copy() |
Copies file from source to destination |
Move |
Files.move() |
Moves or renames file |
Delete |
Files.delete() |
Removes file from filesystem |
Advanced File Manipulation
import java.nio.file.*;
public class FileManipulator {
// Copy file with options
public static void copyFileWithOptions() throws IOException {
Path source = Paths.get("/home/labex/source.txt");
Path destination = Paths.get("/home/labex/destination.txt");
Files.copy(
source,
destination,
StandardCopyOption.REPLACE_EXISTING,
StandardCopyOption.COPY_ATTRIBUTES
);
}
// Move file
public static void moveFile() throws IOException {
Path source = Paths.get("/home/labex/oldlocation.txt");
Path destination = Paths.get("/home/labex/newlocation.txt");
Files.move(
source,
destination,
StandardCopyOption.REPLACE_EXISTING
);
}
}
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
public class FileAttributeReader {
public static void readFileAttributes() throws IOException {
Path filePath = Paths.get("/home/labex/example.txt");
// Read basic file attributes
BasicFileAttributes attrs = Files.readAttributes(
filePath,
BasicFileAttributes.class
);
System.out.println("Size: " + attrs.size());
System.out.println("Created: " + attrs.creationTime());
System.out.println("Last Modified: " + attrs.lastModifiedTime());
}
}
Error Handling in File Operations
import java.nio.file.*;
public class FileErrorHandling {
public static void safeFileOperation() {
try {
Path filePath = Paths.get("/home/labex/example.txt");
Files.delete(filePath);
} catch (NoSuchFileException e) {
System.out.println("File does not exist");
} catch (AccessDeniedException e) {
System.out.println("Permission denied");
} catch (IOException e) {
System.out.println("Unexpected error occurred");
}
}
}
Conclusion
Mastering file manipulation techniques is crucial for Java developers. LabEx recommends practicing these methods to build robust file-handling applications.