Thao Tác Với Tập Tin Và Thư Mục Trong Java - Openplanning
Có thể bạn quan tâm
- Tất cả tài liệu
- Java
- Java Basic
- Java Collections Framework
- Java IO
- Java New IO
- Java Date Time
- Servlet/JSP
- Eclipse Tech
- SWT
- RCP
- RAP
- Eclipse Plugin Tools
- XML & HTML
- Java Opensource
- Java Application Servers
- Maven
- Gradle
- Servlet/Jsp
- Thymeleaf
- Spring
- Spring Boot
- Spring Cloud
- Struts2
- Hibernate
- Java Web Service
- JavaFX
- SWT
- Oracle ADF
- Android
- iOS
- Python
- Swift
- C#
- C/C++
- Ruby
- Dart
- Batch
- Database
- Oracle
- MySQL
- SQL Server
- PostGres
- Other Database
- Oracle APEX
- Report
- Client
- ECMAScript / Javascript
- TypeScript
- NodeJS
- ReactJS
- Flutter
- AngularJS
- HTML
- CSS
- Bootstrap
- OS
- Ubuntu
- Solaris
- Mac OS
- VPS
- Git
- SAP
- Amazon AWS
- Khác
- Chưa phân loại
- Phần mềm & ứng dụng tiện ích
- VirtualBox
- VmWare
- Tổng quan
- java.io.File
- Tạo thư mục
- Bộ lọc File (File Filter)
- Liệt kê tất cả các file con
- Đổi tên (đường dẫn)
1. Tổng quan
Trong thực tế rất thường xuyên bạn phải thao tác với các tập tin và thư mục trong hệ thống, các thao tác ở đây bao gồm thêm, xóa, đổi tên. Java cung cấp cho bạn 2 class để làm việc này:- java.io.File
- java.nio.file.Files
Trong bài hướng dẫn này tôi chỉ đề cập tới việc sử dụng lớp java.io.File, bạn có thể xem thêm java.nio.file.Files tại:
- Thao tác với tập tin và thư mục sử dụng Java NIO Files
2. java.io.File
Lớp java.io.File đại diện cho một tập tin hoặc một thư mục trong hệ thống, nó đại diện cho một đường dẫn (pathname). Ví dụ dưới đây tạo một đối tượng File đại diện cho một đường dẫn trên Windows hoặc Unix:// Window File apath1 = new File("C:/mydocument/test.txt"); File apath2 = new File("C:/mydocument/java"); // Unix File apath3 = new File("/mydocument/test.txt"); File apath3 = new File("/mydocument/java");java.io.File có thể đại diện cho một đường dẫn (pathname) mà đường dẫn đó có thể không thực sự tồn tại trên hệ thống. Nếu tồn tại nó có thể là một thư mục (directory) hoặc là một tập tin (file).Ví dụ đơn giản sau đây tạo một đối tượng File đại diện cho một đường dẫn, và kiểm tra sự tồn tại của nó, ghi ra các thông tin cơ bản nếu đường dẫn đó thực sự tồn tại:FileInfoExample.javapackage org.o7planning.filedirectory; import java.io.File; import java.util.Date; public class FileInfoExample { public static void main(String[] args) { // Tạo một đối tượng File đại diện cho một đường dẫn. File apath = new File("C:/test/mytext.txt"); // Kiểm tra sự tồn tại. System.out.println("Path exists? " + apath.exists()); if (apath.exists()) { // Kiểm tra 'apath' có phải là một thư mục hay không? System.out.println("Directory? " + apath.isDirectory()); // Kiểm tra 'apath' là một đường dẫn ẩn hay không? System.out.println("Hidden? " + apath.isHidden()); // Tên đơn giản. System.out.println("Simple Name: " + apath.getName()); // Đường dẫn tuyêt đối. System.out.println("Absolute Path: " + apath.getAbsolutePath()); // Kiểm tra kích thước file (Theo đơn vị byte): System.out.println("Length (bytes): " + apath.length()); // Thời điểm sửa lần cuối (mili giây) long lastMofifyInMillis = apath.lastModified(); Date lastModifyDate = new Date(lastMofifyInMillis); System.out.println("Last modify date: " + lastModifyDate); } } }3. Tạo thư mục
Lớp File cung cấp 2 phương thức để tạo môt thư mục:Phương thức | Mô tả |
public boolean mkdir() | Tạo thư mục cho bởi đường dẫn. Chú ý thư mục chỉ được tạo ra nếu thư mục cha tồn tại. |
public boolean mkdirs() | Tạo thư mục cho bởi đường dẫn, bao gồm cả các thư mục cha nếu nó không tồn tại. |
4. Bộ lọc File (File Filter)
Lớp java.io.File cung cấp một vài phương thức để lấy ra danh sách các tập tin con và thư mục con trong một thư mục. Và sử dụng FileFilter để lọc các tập tin đó.Phương thức | Mô tả |
static File[] listRoots() | Trả về một mảng các đối tượng File là đại diện cho các thư mục gốc. Trong Windows nó sẽ là các ổ đĩa (C:, D:,..), trong Unix nó là / |
File[] listFiles() | Trả về một mảng các đối tượng File, là các tập tin và các thư mục con của thư mục hiện tại. |
File[] listFiles(FilenameFilter filter) | Trả về một mảng các đối tượng File, là các tập tin và các thư mục con của thư mục hiện tại, và phù hợp với bộ lọc FilenameFilter trên tham số. |
File[] listFiles(FileFilter filter) | Trả về một mảng các đối tượng File, là các tập tin và các thư mục con của thư mục hiện tại, và phù hợp với bộ lọc FileFilter trên tham số. |
String[] list() | Trả về một mảng các đường dẫn, là đường dẫn của các tập tin và đường dẫn của các thư mục con của thư mục hiện tại. |
String[] list(FilenameFilter filter) | Trả về một mảng các đường dẫn, là đường dẫn của các tập tin và đường dẫn của các thư mục con của thư mục hiện tại, và phù hợp với bộ lọc FiltenameFilter trên tham số. |
5. Liệt kê tất cả các file con
Lớp java.io.File cung cấp cho bạn vài phương thức để liệt kê các thư mục và các tập tin là "con trực tiếp" của thư mục hiện tại. Ví dụ dưới đây sử dụng đệ quy để liệt kê toàn bộ các thư mục hậu duệ (con,cháu,..) và các tập tin hậu duệ của một thư mục.RecursiveFileExample.javapackage org.o7planning.filedirectory; import java.io.File; public class RecursiveFileExample { private void fetchChild(File file) { System.out.println(file.getAbsolutePath()); if (file.isDirectory()) { File[] children = file.listFiles(); for (File child : children) { // Đệ quy (Recursive) this.fetchChild(child); } } } public static void main(String[] args) { RecursiveFileExample example = new RecursiveFileExample(); File dir = new File("C:/test"); example.fetchChild(dir); } }6. Đổi tên (đường dẫn)
Sử dụng phương thưc rename() của lớp File, bạn có thể thay đổi tên (Hoặc cả đường dẫn) của một file hoặc thư mục. Nếu bạn đổi cả đường dẫn, hãy đảm bảo rằng thư mục cha mới đã tồn tại.Đổi tênVí dụ đơn giản dưới đây đổi tên một tập tin (Hoặc thư mục) nhưng không thay đổi đường dẫn cha.SimpleRenameExample.javapackage org.o7planning.filedirectory; import java.io.File; public class SimpleRenameExample { public static void main(String[] args) { File srcFile = new File("C:/test/test2/abc.txt"); File destFile = new File("C:/test/test2/def.txt"); boolean renamed = srcFile.renameTo(destFile); System.out.println("Renamed: "+ renamed); } }Đổi tên bao gồm cả đường dẫn cha:Đổi tên và đổi cả đường dẫn cha, giống với hành động "Cut" một file hoặc một thư mục sang một thư mục khác và sau đó đổi tên.Chú ý: Với hệ điều hành Windows, phương thức File.rename() sẽ không hoạt động nếu bạn đổi đường dẫn từ ổ đĩa này sang ổ đĩa kia.RenameAndPathExample.javapackage org.o7planning.filedirectory; import java.io.File; public class RenameAndPathExample { public static void main(String[] args) { // File nguồn (Source file). File srcFile = new File("C:/test/test2/abc.txt"); // File đích (Destination file). File destFile = new File("C:/test2/test3/defgh.txt"); if (!srcFile.exists()) { System.out.println("Src File doest not exists"); return; } // Tạo thư mục cha của file đích. destFile.getParentFile().mkdirs(); boolean renamed = srcFile.renameTo(destFile); System.out.println("Renamed: " + renamed); } }
Java cơ bản
- Tùy biến trình biên dịch java xử lý Annotation của bạn (Annotation Processing Tool)
- Lập trình Java theo nhóm sử dụng Eclipse và SVN
- Hướng dẫn và ví dụ Java WeakReference
- Hướng dẫn và ví dụ Java PhantomReference
- Hướng dẫn nén và giải nén trong Java
- Cấu hình Eclipse để sử dụng JDK thay vì JRE
- Phương thức String.format() và printf() trong Java
- Cú pháp và các tính năng mới trong Java 5
- Cú pháp và các tính năng mới trong Java 8
- Hướng dẫn sử dụng biểu thức chính quy trong Java
- Hướng dẫn lập trình đa luồng trong Java - Java Multithreading
- Thư viện điều khiển các loại cơ sở dữ liệu khác nhau trong Java
- Hướng dẫn sử dụng Java JDBC kết nối cơ sở dữ liệu
- Lấy các giá trị của các cột tự động tăng khi Insert một bản ghi sử dụng JDBC
- Hướng dẫn và ví dụ Java Stream
- Functional Interface trong Java
- Giới thiệu về Raspberry Pi
- Hướng dẫn và ví dụ Java Predicate
- Abstract class và Interface trong Java
- Access modifier trong Java
- Hướng dẫn và ví dụ Java Enum
- Hướng dẫn và ví dụ Java Annotation
- So sánh và sắp xếp trong Java
- Hướng dẫn và ví dụ Java String, StringBuffer và StringBuilder
- Hướng dẫn xử lý ngoại lệ trong Java - Java Exception Handling
- Hướng dẫn và ví dụ Java Generics
- Thao tác với tập tin và thư mục trong Java
- Hướng dẫn và ví dụ Java BiPredicate
- Hướng dẫn và ví dụ Java Consumer
- Hướng dẫn và ví dụ Java BiConsumer
- Bắt đầu với Java cần những gì?
- Lịch sử của Java và sự khác biệt giữa Oracle JDK và OpenJDK
- Cài đặt Java trên Windows
- Cài đặt Java trên Ubuntu
- Cài đặt OpenJDK trên Ubuntu
- Cài đặt Eclipse
- Cài đặt Eclipse trên Ubuntu
- Học nhanh Java cho người mới bắt đầu
- Lịch sử của bit và byte trong khoa học máy tính
- Các kiểu dữ liệu trong Java
- Các toán tử Bitwise
- Câu lệnh rẽ nhánh (if else) trong Java
- Câu lệnh rẽ nhánh switch trong Java
- Vòng lặp trong Java
- Mảng (Array) trong Java
- JDK Javadoc định dạng CHM
- Thừa kế và đa hình trong Java
- Hướng dẫn và ví dụ Java Function
- Hướng dẫn và ví dụ Java BiFunction
- Ví dụ về Java encoding và decoding sử dụng Apache Base64
- Hướng dẫn và ví dụ Java Reflection
- Hướng dẫn gọi phương thức từ xa với Java RMI
- Hướng dẫn lập trình Java Socket
- Các nền tảng nào bạn nên chọn để lập trình ứng dụng Java Desktop?
- Hướng dẫn và ví dụ Java Commons IO
- Hướng dẫn và ví dụ Java Commons Email
- Hướng dẫn và ví dụ Java Commons Logging
- Tìm hiểu về Java System.identityHashCode, Object.hashCode và Object.equals
- Hướng dẫn và ví dụ Java SoftReference
- Hướng dẫn và ví dụ Java Supplier
- Lập trình Java hướng khía cạnh với AspectJ (AOP)
- Hướng dẫn lập trình Java Servlet/JSP
- Các hướng dẫn Java Collections Framework
- Java API cho HTML & XML
- Các hướng dẫn Java IO
- Các hướng dẫn Java Date Time
- Các hướng dẫn Spring Boot
- Các hướng dẫn Maven
- Các hướng dẫn Gradle
- Các hướng dẫn Java Web Services
- Các hướng dẫn lập trình Java SWT
- Các hướng dẫn lập trình JavaFX
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn Struts2 Framework
- Các hướng dẫn Spring Cloud
Java cơ bản
- Tùy biến trình biên dịch java xử lý Annotation của bạn (Annotation Processing Tool)
- Lập trình Java theo nhóm sử dụng Eclipse và SVN
- Hướng dẫn và ví dụ Java WeakReference
- Hướng dẫn và ví dụ Java PhantomReference
- Hướng dẫn nén và giải nén trong Java
- Cấu hình Eclipse để sử dụng JDK thay vì JRE
- Phương thức String.format() và printf() trong Java
- Cú pháp và các tính năng mới trong Java 5
- Cú pháp và các tính năng mới trong Java 8
- Hướng dẫn sử dụng biểu thức chính quy trong Java
- Hướng dẫn lập trình đa luồng trong Java - Java Multithreading
- Thư viện điều khiển các loại cơ sở dữ liệu khác nhau trong Java
- Hướng dẫn sử dụng Java JDBC kết nối cơ sở dữ liệu
- Lấy các giá trị của các cột tự động tăng khi Insert một bản ghi sử dụng JDBC
- Hướng dẫn và ví dụ Java Stream
- Functional Interface trong Java
- Giới thiệu về Raspberry Pi
- Hướng dẫn và ví dụ Java Predicate
- Abstract class và Interface trong Java
- Access modifier trong Java
- Hướng dẫn và ví dụ Java Enum
- Hướng dẫn và ví dụ Java Annotation
- So sánh và sắp xếp trong Java
- Hướng dẫn và ví dụ Java String, StringBuffer và StringBuilder
- Hướng dẫn xử lý ngoại lệ trong Java - Java Exception Handling
- Hướng dẫn và ví dụ Java Generics
- Thao tác với tập tin và thư mục trong Java
- Hướng dẫn và ví dụ Java BiPredicate
- Hướng dẫn và ví dụ Java Consumer
- Hướng dẫn và ví dụ Java BiConsumer
- Bắt đầu với Java cần những gì?
- Lịch sử của Java và sự khác biệt giữa Oracle JDK và OpenJDK
- Cài đặt Java trên Windows
- Cài đặt Java trên Ubuntu
- Cài đặt OpenJDK trên Ubuntu
- Cài đặt Eclipse
- Cài đặt Eclipse trên Ubuntu
- Học nhanh Java cho người mới bắt đầu
- Lịch sử của bit và byte trong khoa học máy tính
- Các kiểu dữ liệu trong Java
- Các toán tử Bitwise
- Câu lệnh rẽ nhánh (if else) trong Java
- Câu lệnh rẽ nhánh switch trong Java
- Vòng lặp trong Java
- Mảng (Array) trong Java
- JDK Javadoc định dạng CHM
- Thừa kế và đa hình trong Java
- Hướng dẫn và ví dụ Java Function
- Hướng dẫn và ví dụ Java BiFunction
- Ví dụ về Java encoding và decoding sử dụng Apache Base64
- Hướng dẫn và ví dụ Java Reflection
- Hướng dẫn gọi phương thức từ xa với Java RMI
- Hướng dẫn lập trình Java Socket
- Các nền tảng nào bạn nên chọn để lập trình ứng dụng Java Desktop?
- Hướng dẫn và ví dụ Java Commons IO
- Hướng dẫn và ví dụ Java Commons Email
- Hướng dẫn và ví dụ Java Commons Logging
- Tìm hiểu về Java System.identityHashCode, Object.hashCode và Object.equals
- Hướng dẫn và ví dụ Java SoftReference
- Hướng dẫn và ví dụ Java Supplier
- Lập trình Java hướng khía cạnh với AspectJ (AOP)
- Hướng dẫn lập trình Java Servlet/JSP
- Các hướng dẫn Java Collections Framework
- Java API cho HTML & XML
- Các hướng dẫn Java IO
- Các hướng dẫn Java Date Time
- Các hướng dẫn Spring Boot
- Các hướng dẫn Maven
- Các hướng dẫn Gradle
- Các hướng dẫn Java Web Services
- Các hướng dẫn lập trình Java SWT
- Các hướng dẫn lập trình JavaFX
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn Struts2 Framework
- Các hướng dẫn Spring Cloud
Các bài viết mới nhất
- Xử lý lỗi 404 trong Flutter GetX
- Ví dụ đăng nhập và đăng xuất với Flutter Getx
- Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
- Hướng dẫn và ví dụ Flutter multi_dropdown
- Hướng dẫn và ví dụ Flutter flutter_form_builder
- Hướng dẫn và ví dụ Flutter GetX obs Obx
- Hướng dẫn và ví dụ Flutter GetX GetBuilder
- Từ khoá part và part of trong Dart
- Hướng dẫn và ví dụ Flutter InkWell
- Bài thực hành Flutter SharedPreferences
- Hướng dẫn và ví dụ Flutter Radio
- Hướng dẫn và ví dụ Flutter Slider
- Hướng dẫn và ví dụ Flutter SkeletonLoader
- Chỉ định cổng cố định cho Flutter Web trên Android Studio
- Hướng dẫn và ví dụ Flutter SharedPreferences
- Tạo Module trong Flutter
- Flutter upload ảnh sử dụng http và ImagePicker
- Bài thực hành Dart http CRUD
- Hướng dẫn và ví dụ Flutter image_picker
- Flutter GridView với SliverGridDelegate tuỳ biến
- Java cơ bản
Từ khóa » Tìm Hiểu Về File Trong Java
-
Tự Học Java | Lớp File Trong Java »
-
Làm Việc Với File Trong Java
-
Tạo File Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Xử Lý File Trong Lập Trình Java - Le Vu Nguyen
-
3 Cách đọc File Trong Java Phổ Biến Nhất
-
Lớp File Trong Java
-
Lớp File Trong Java - TEK4
-
Xử Lý File Trong Java - Lập Trình Từ Đầu
-
Thao Tác File Cơ Bản Trong Java - Deft Blog
-
Bài 32: Tìm Hiểu Về Lớp File Trong Java - Developer Softwares
-
Java: Quản Lý Siêu Dữ Liệu (File Và File Lưu Các Thuộc Tính) | V1Study
-
Java: Java: File Và I/O Trong Java | V1Study
-
Cách Tạo Một File Trong Java
-
Code Java Cơ Bản Về Thao Tác Với File Text - CodeGym