🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
File class, Files class from the java.nio.file package, and FileChannel class.Table of Contents
- Introduction
- Using
FileClass - Using
FilesClass (Java NIO) - Using
FileChannelClass - Conclusion
Introduction
Java provides several classes and methods to work with files and file systems. Depending on your requirements and the version of Java you are using, you can choose the most appropriate method to get the size of a file.
Using File Class
The File class from the java.io package is the most straightforward way to get the size of a file.
Example
import java.io.File;
public class FileSizeExample {
public static void main(String[] args) {
File file = new File("path/to/your/file.txt");
if (file.exists() && file.isFile()) {
long fileSize = file.length();
System.out.println("File size in bytes: " + fileSize);
} else {
System.out.println("File does not exist or is not a file.");
}
}
}
Explanation
new File("path/to/your/file.txt"): Creates aFileobject representing the file at the specified path.file.exists() && file.isFile(): Checks if the file exists and is a file (not a directory).file.length(): Returns the size of the file in bytes.
Output:
File size in bytes: 1024
Using Files Class (Java NIO)
The Files class from the java.nio.file package provides a more modern way to work with files. It offers a method to get the size of a file in bytes.
Example
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
public class FileSizeExample {
public static void main(String[] args) {
Path path = Paths.get("path/to/your/file.txt");
try {
long fileSize = Files.size(path);
System.out.println("File size in bytes: " + fileSize);
} catch (IOException e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
Explanation
Paths.get("path/to/your/file.txt"): Creates aPathobject representing the file at the specified path.Files.size(path): Returns the size of the file in bytes.- The method handles
IOExceptionwhich might be thrown if an I/O error occurs.
Output:
File size in bytes: 1024
Using FileChannel Class
The FileChannel class provides a way to read, write, map, and manipulate files in a more flexible and efficient manner. You can also use it to get the size of a file.
Example
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
public class FileSizeExample {
public static void main(String[] args) {
File file = new File("path/to/your/file.txt");
try (FileInputStream fis = new FileInputStream(file); FileChannel fileChannel = fis.getChannel()) {
long fileSize = fileChannel.size();
System.out.println("File size in bytes: " + fileSize);
} catch (IOException e) {
System.out.println("An error occurred: " + e.getMessage());
}
}
}
Explanation
new FileInputStream(file): Creates aFileInputStreamto read the file.fis.getChannel(): Obtains aFileChannelfrom theFileInputStream.fileChannel.size(): Returns the size of the file in bytes.- The method handles
IOExceptionwhich might be thrown if an I/O error occurs.
Output:
File size in bytes: 1024
Conclusion
Getting the size of a file in Java can be accomplished using various methods, including the File class, Files class from the java.nio.file package, and FileChannel class. Each method has its own advantages and specific use cases:
- The
Fileclass is straightforward and commonly used in legacy code. - The
Filesclass provides a more modern and efficient approach, especially useful in newer Java applications. - The
FileChannelclass offers flexible and efficient file manipulation capabilities.
By understanding these methods, you can choose the most appropriate one for your specific use case when working with files in Java.
My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:
Build REST APIs with Spring Boot 4, Spring Security 7, and JWT
[NEW] Learn Apache Maven with IntelliJ IDEA and Java 25
ChatGPT + Generative AI + Prompt Engineering for Beginners
Spring 7 and Spring Boot 4 for Beginners (Includes 8 Projects)
Available in Udemy for Business
Building Real-Time REST APIs with Spring Boot - Blog App
Available in Udemy for Business
Building Microservices with Spring Boot and Spring Cloud
Available in Udemy for Business
Java Full-Stack Developer Course with Spring Boot and React JS
Available in Udemy for Business
Build 5 Spring Boot Projects with Java: Line-by-Line Coding
Testing Spring Boot Application with JUnit and Mockito
Available in Udemy for Business
Spring Boot Thymeleaf Real-Time Web Application - Blog App
Available in Udemy for Business
Master Spring Data JPA with Hibernate
Available in Udemy for Business
Spring Boot + Apache Kafka Course - The Practical Guide
Available in Udemy for Business
Comments
Post a Comment
Leave Comment