Có một số tình huống mà bạn sẽ muốn làm việc với các tệp trong Java. Ví dụ:bạn có thể muốn tạo một tệp để lưu trữ kết quả đầu ra của một chương trình hoặc có thể bạn quyết định rằng bạn muốn đọc dữ liệu từ một tệp sau đó được xử lý bởi một chương trình.
Đó là nơi xuất hiện của thư viện java.io. Thư viện java.io cung cấp một số phương pháp được sử dụng để làm việc với các tệp trong Java.
Hướng dẫn này sẽ thảo luận về cách sử dụng các lớp Java File, FileReader và FileWriter và các phương thức cốt lõi của chúng. Hướng dẫn này cũng sẽ đề cập đến một ví dụ về từng phương pháp này đang được sử dụng, để chứng minh cách bạn có thể sử dụng chúng trong mã của mình.
Tệp Java
Tệp là các mục trong máy tính lưu trữ một phần thông tin cụ thể. Ví dụ:một tệp có thể lưu trữ danh sách tên học sinh trong một lớp toán hoặc danh sách các nguyên liệu được sử dụng để nướng một chiếc bánh cà phê. Mặt khác, thư mục là các thư mục lưu trữ các tập tin và các thư mục khác.
Thư viện java.io bao gồm một số gói có thể được sử dụng để làm việc với các tệp và thư mục trong Java. Đối với hướng dẫn này, chúng ta sẽ tập trung vào các gói Java File, FileReader và FileWriter.
Bởi vì các phương thức được cung cấp bởi các gói này là một phần của gói bên ngoài, trước tiên chúng ta cần nhập các gói này trước khi có thể sử dụng chúng trong mã của mình.
Đây là mã chúng tôi có thể sử dụng để nhập các lớp File, FileReader và FileWriter vào chương trình của chúng tôi:
import java.io.File;
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
import java.io.FileReader;
import java.io.FileWriter;
Bây giờ chúng ta đã biết cách nhập các lớp tệp Java mà chúng ta sẽ làm việc trong hướng dẫn này, chúng ta đã sẵn sàng tiếp tục.
Tạo tệp Java
Lớp Java File được sử dụng để tạo một tệp trống trong Java.
Tuy nhiên, trước khi có thể tạo tệp, chúng ta cần tạo một đối tượng Tệp. Đối tượng tệp là đại diện của một tệp hoặc thư mục cụ thể trong mã của chúng tôi. Điều đó nói rằng, đối tượng tệp không tạo tệp trong chính nó. Đầu tiên chúng ta cần tạo một đối tượng tệp, sau đó chúng ta có thể sử dụng nó để tạo tệp.
Đây là cú pháp chúng ta có thể sử dụng để tạo một đối tượng tệp trong Java:
File fileName = newFile(String filePath);
Trong ví dụ này, chúng tôi đã tạo một đối tượng hệ thống tệp có tên là fileName
. Đối tượng tệp này liên quan đến tệp hoặc thư mục được lưu trữ tại đường dẫn tệp mà chúng tôi đã chỉ định trong filePath
Biến đổi.
Để tạo một tệp trong Java, chúng ta có thể sử dụng createNewFile()
phương pháp. createNewFile()
tạo một tệp mới tại đường dẫn tệp bạn chỉ định. Phương thức trả về true nếu tệp mới được tạo và false nếu đã có tệp ở vị trí bạn đã chỉ định.
Giả sử chúng tôi đang tạo một chương trình phân tích dữ liệu phân tích hiệu suất cổ phiếu lịch sử cho S&P 500 vào năm 2019. Trước khi phân tích dữ liệu, chúng tôi muốn tạo một tệp mới để lưu trữ thông tin chi tiết mà chương trình của chúng tôi tạo ra. Chúng tôi có thể sử dụng mã này để tạo tệp sẽ lưu trữ kết quả phân tích của chúng tôi:
import java.io.File; class CreateFile { public static void main(String[] args) { File resultsFile = new File("/home/data_analysis/2019sandp500/result.txt"); boolean fileCreated = resultsFile.createNewFile(); if (fileCreated) { System.out.println("The results file has been created."); } else { System.out.println("The results file already exists."); } } }
Khi chúng tôi chạy mã của mình, một tệp ở đường dẫn /home/data_analysis/2019sandp500/result.txt
được tạo ra. Sau đó, phản hồi sau được trả về bảng điều khiển:
The results file has been created.
Tuy nhiên, nếu tệp chúng tôi đang cố gắng tạo đã tồn tại, thông báo này sẽ được trả về bảng điều khiển:
The results file already exists.
Hãy chia nhỏ mã của chúng ta. Đầu tiên, chúng tôi nhập java.io.File
phương thức bao gồm các phương thức tệp mà chúng tôi sẽ sử dụng trong mã của mình. Sau đó, chúng tôi tạo một lớp có tên là CreateFile
nơi lưu trữ mã cho chương trình của chúng tôi.
Trên dòng đầu tiên của chương trình chính của chúng tôi, chúng tôi tạo một đối tượng tệp có tên là resultsFile
, đại diện cho tệp tại đường dẫn tệp /home/data_analysis/2019sandp500/result.txt
. Sau đó, chúng tôi sử dụng createNewFile()
để tạo một tệp mới tại đường dẫn tệp mà chúng tôi đã chỉ định. Kết quả boolean của createNewFile()
phương thức được lưu trữ trong tệp biến được tạo.
Trên dòng tiếp theo, chúng tôi tạo một if
tuyên bố. Nếu tệp được tạo bằng true, thông báo The results file has been created
. sẽ được in ra bảng điều khiển; nếu không, thông báo The results file already exists
. sẽ được in ra bảng điều khiển. Trong trường hợp này, tệp kết quả không tồn tại, vì vậy mã của chúng tôi đã tạo tệp mới và in The results file has been created.
vào bảng điều khiển.
Đọc tệp Java
read()
trong lớp Java FileReader được sử dụng để đọc nội dung của tệp Java.
Giả sử chúng ta có một tệp có tên là /home/data_analysis/2019sandp500/raw_message.txt
mà chúng tôi muốn truy cập trong mã của chúng tôi. Tệp này chứa văn bản sau:
JAVA S&P 500 ANALYSIS PROGRAM
Chúng tôi có thể đọc tệp này bằng mã sau:
import java.io.FileReader; class Main { public static void main(String[] args) { char[] array = new char[100]; try { FileReader fileContents = new FileReader("/home/data_analysis/2019sandp500/raw_message.txt"); fileContents.read(array); System.out.println(array); fileContents.close(); } catch(Exception error) { error.getStackTrace(); } } }
Mã của chúng tôi trả về:
CHƯƠNG TRÌNH PHÂN TÍCH JAVA S&P 500
Trong chương trình của mình, chúng tôi đã sử dụng lớp FileReader để tạo đối tượng tệp đại diện cho nội dung của tệp được lưu trữ tại /home/data_analysis/2019sandp500/raw_message.txt.
Sau đó, chúng tôi sử dụng read()
phương thức để đọc nội dung của tệp thành một mảng. Cuối cùng, chúng tôi in nội dung của mảng ra bảng điều khiển và sử dụng close()
để đóng tệp của chúng tôi.
Ghi vào tệp Java
write()
từ FileWriter
gói được sử dụng để ghi vào một tệp trong Java.
Giả sử chúng ta muốn ghi ngày hôm nay lên đầu tệp kết quả để lưu trữ kết quả của chương trình phân tích dữ liệu của chúng ta. Tệp này được lưu trữ tại đường dẫn tệp /home/data_analysis/2019sandp500/results.txt
. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
import java.io.FileWriter; class Main { public static void main(String args[]) { String date = "Thursday, March 12th"; try { FileWriter writeToFile = new FileWriter("/home/data_analysis/2019sandp500/results.txt"); writeToFile.write(date); writeToFile.close(); System.out.println("The date has been written to the file."); } catch (Exception error) { error.getStackTrace(); } }
Mã của chúng tôi viết Thursday, March 12th
vào tệp /home/data_analysis/2019sandp500/results.txt
và in nội dung sau vào bảng điều khiển:
The date has been written to the file.
Đây là nội dung của tệp results.txt mà chúng tôi đã viết trong chương trình của mình:
Thursday, March 12th
Trong ví dụ trên, chúng tôi đã sử dụng FileWriter
để ghi một câu vào tệp trong Java. Đầu tiên, chúng tôi đã khai báo một biến có tên là writeToFile()
tạo bản trình bày tệp được lưu trữ tại đường dẫn tệp /home/data_analysis/2019sandp500/results.txt
. write()
được sử dụng để ghi một chuỗi vào một tệp, sau đó chúng tôi sử dụng phương thức close()
để đóng tệp.
Xóa tệp trong Java
Gói tệp Java cung cấp một phương thức được sử dụng để xóa tệp hoặc thư mục— delete().
delete()
trả về true nếu tệp được chỉ định bị xóa và false nếu tệp không tồn tại. Ngoài ra, delete()
phương thức chỉ có thể xóa các thư mục không có nội dung.
Giả sử chúng ta muốn xóa results.txt
tệp khi bắt đầu chương trình của chúng tôi để chúng tôi có thể ghi dữ liệu mới vào tệp sau này trong chương trình của chúng tôi. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:
import java.io.File; class Main { public static void main(String[] args) { File results = newFile("/home/data_analysis/2019sandp500/results.txt"); boolean deleteFile = results.delete(); if (deleteFile) { System.out.println("results.txt has been deleted."); } else { System.out.println("results.txt has not been deleted."); } } }
Mã của chúng tôi sẽ xóa nội dung của tệp results.txt và in nội dung sau vào bảng điều khiển:
results.txt has been deleted.
Trong ví dụ này, chúng tôi đã tạo một đối tượng của Tệp được gọi là kết quả đại diện cho nội dung của tệp results.txt. Sau đó, chúng tôi sử dụng delete()
phương pháp xóa nội dung của tệp.
Nếu tệp results.txt đã được xóa thành công - giống như trong ví dụ trên - thông báo results.txt has been deleted
. được in ra bảng điều khiển. Nếu không, results.txt has not been deleted
. được in ra bảng điều khiển.
Kết luận
Gói tệp Java được sử dụng để tạo và xóa tệp, gói FileReader được sử dụng để đọc nội dung của tệp và gói FileWriter được sử dụng để ghi vào tệp.
Hướng dẫn này đã thảo luận, có tham chiếu đến các ví dụ, cách sử dụng các gói File, FileReader và FileWriter Java để làm việc với các tệp trong mã của bạn. Bây giờ, bạn đã sẵn sàng bắt đầu làm việc với các tệp trong Java như một lập trình viên chuyên nghiệp!