Bạn có nhiều lựa chọn về cách đọc file trong Java tuy nhiên trong bài này, mình sẽ hướng dẫn các bạn cách hay sử dụng nhất để đọc một file. Đó là sử dụng java.io.BufferedReader
.
BufferedReader là class được xây dựng trong cấu trúc các class xuất nhập dữ liệu theo luồng ký tự (Character) mà Reader là class cha. Luồng ký tự này có thể đọc và lưu trữ được dữ liệu Unicode
mà luồng ký tự (đại diện là InputStream) không thể thực hiện cho dù nó là một luồng xử lý dữ liệu mạnh mẽ.
1. Cách đọc file sử dụng BufferedReader
package com.ngockhuong; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class BufferedReaderExample1 { private static final String FILENAME = "c:\\data\\file-data.txt"; public static void main(String[] args) { // tạo đối tượng luồng và liên kết nguồn dữ liệu BufferedReader br = null; FileReader fr = null; try { fr = new FileReader(FILENAME); br = new BufferedReader(fr); String currentLine; br = new BufferedReader(new FileReader(FILENAME)); // đọc file theo dòng và in ra while ((currentLine = br.readLine()) != null) { System.out.println(currentLine); } } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) br.close(); if (fr != null) fr.close(); } catch (IOException ex) { ex.printStackTrace(); } } } }
2. Tự động hóa trong JDK 7
Sử dụng cấu trúc lệnh try-with-resources
để đóng tự động đối tượng từ lớp BufferedReader sau khi sử dụng xong.
package com.ngockhuong; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class BufferedReaderExample2 { private static final String FILENAME = "c:\\data\\file-data.txt"; public static void main(String[] args) { try (BufferedReader br = new BufferedReader(new FileReader(FILENAME))) { String currentLine; // đọc file theo dòng và in ra while ((currentLine = br.readLine()) != null) { System.out.println(currentLine); } } catch (IOException e) { e.printStackTrace(); } } }