Các Phương Pháp đọc/ghi Tệp Dữ Liệu Khác Nhau Trong Java - FUNiX

  1. Trang chủ
  2. Chia sẻ kiến thức
  3. Các phương pháp đọc/ghi tệp dữ liệu khác nhau trong Java
Các phương pháp đọc/ghi tệp dữ liệu khác nhau trong Java Chia sẻ kiến thức 29/01/2022

Trong bài viết này, FUNIX sẽ chỉ cho bạn một số phương pháp đọc/ ghi tệp dữ liệu phổ biến, dễ dàng áp dụng vào thực tế!

  • Tất tần tật về lập trình phần mềm cho dân không chuyên
  • Hướng dẫn tự học lập trình Python online đơn giản nhất
  • Lập trình PHP là gì? Cơ hội nghề nghiệp ngành lập trình PHP
  • Lập trình PLC đèn giao thông là gì? Đặc điểm của lập trình PLC đèn giao thông
  • Lập trình PHP có khó không? Học lập trình PHP cần những điều kiện gì?

>> Đừng học thuộc code, thay vào đó hãy chia nhỏ nó để hiểu!

Nếu bạn muốn tìm hiểu về ngôn ngữ lập trình Java sâu hơn, kĩ năng đọc/ghi các tệp Java là một kỹ thuật quan trọng cần thành thạo. Trước đây, bạn có thể quen với việc đọc dữ liệu từ bảng điều khiển. Nhưng đối với các tệp dữ liệu lớn, hàng nghìn đến hàng triệu hàng, bạn sẽ xử lý như thế nào? May mắn thay, Java là một ngôn ngữ có thể hỗ trợ một số lượng lớn các tùy chọn cho từng tình huống cụ thể mà bạn cần. 

Các phương pháp đọc/ghi tệp dữ liệu khác nhau trong Java
Các phương pháp đọc/ghi tệp dữ liệu khác nhau trong Java.

1. Mô tả một số phương pháp đọc file trong Java

Các phương thức hỗ trợ đọc file không chỉ tồn tại trong Java mà còn trong hầu hết các ngôn ngữ lập trình khác. Tuy nhiên, mỗi ngôn ngữ có một cách tiếp cận khác nhau. Để biết chúng khác nhau như thế nào, trước tiên bạn phải biết phương pháp đọc/ ghi tệp dữ liệu trong Java. Việc đọc file trong Java có thể nói là khá đa dạng về phương thức hỗ trợ.

Để tìm hiểu thêm, trước tiên chúng ta tạo một tệp text.txt (ở đây, nó được trong thư mục F:\content-niit) với nội dung sau để hỗ trợ cho phần code.

Farewell! thou art too dear for my possessing, 

And like enough thou know’st thy estimate, 

The charter of thy worth gives thee releasing: 

My bonds in thee are all determinate. 

For how do I hold thee but by thy granting, 

And for that riches where is my deserving? 

The cause of this fair gift in me is wanting, 

And so my patent back again is swerving. 

Thy self thou gav’st, thy own worth then not knowing, 

Or me to whom thou gav’st it, else mistaking, 

So thy great gift upon misprision growing, 

Comes home again, on better judgement making. 

Thus have I had thee as a dream doth flatter, 

In sleep a king, but waking no such matter.

Sau đây là chương trình để đọc file trên.

1.1 Phương pháp # 1: Sử dụng Scanner để đọc các tệp Java

Cách sử dụng Scanner, xuất nhập trên màn hình console trước đây có lẽ đã quá quen thuộc. Khi sử dụng file, Scanner cung cấp 2 phương thức hasNextLine () và nextLine () hỗ trợ đọc file rất đơn giản, gần gũi và dễ sử dụng. Đây là ví dụ về cách tôi sử dụng Máy quét để đọc tệp:

package file;

// Import package cần thiết

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.util.Scanner;

import java.util.logging.Level;

import java.util.logging.Logger;

public class ReadFileWithScanner {

    public static void main(String args[]) throws FileNotFoundException {

        String url = “F:\\content-niit\\file-content.txt”;

        // Đọc dữ liệu từ File với Scanner

        FileInputStream fileInputStream = new FileInputStream(url);

        Scanner scanner = new Scanner(fileInputStream);

        try {

            while (scanner.hasNextLine()) {

                System.out.println(scanner.nextLine());

            }

        } finally {

            try {

                scanner.close();

                fileInputStream.close();

            } catch (IOException ex) {

                Logger.getLogger(ReadFileWithBufferedReader.class.getName())

                                .log(Level.SEVERE, null, ex);

            }

        }

    }

}

1.2 Phương pháp # 2: Sử dụng BufferedReader để đọc các tệp trong Java

Sử dụng BufferedReader để đọc các tệp trong Java có lẽ là cách dễ sử dụng nhất. BufferedReader cung cấp một hàm readLine () tích hợp để đọc từng dòng dữ liệu tệp. Phương pháp này yêu cầu sử dụng InputStream để mở và đọc tệp.

package file;

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.logging.Level;

import java.util.logging.Logger;

public class ReadFileWithBufferedReader {

    public static void main(String args[]) throws IOException {

        String url = “F:\\content-niit\\file-content.txt”;

        // Đọc dữ liệu từ File với BufferedReader

        FileInputStream fileInputStream = null;

        BufferedReader bufferedReader = null;

        try {

            fileInputStream = new FileInputStream(url);

            bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));

            String line = bufferedReader.readLine();

            while (line != null) {

                System.out.println(line);

                line = bufferedReader.readLine();

            }

        } catch (FileNotFoundException ex) {

            Logger.getLogger(ReadFileWithBufferedReader.class.getName()

                            .log(Level.SEVERE, null, ex);

        } catch (IOException ex) {

            Logger.getLogger(ReadFileWithBufferedReader.class.getName())

                            .log(Level.SEVERE, null, ex);

        } finally {

            try {

                bufferedReader.close();

                fileInputStream.close();

            } catch (IOException ex) {

                Logger.getLogger(ReadFileWithBufferedReader.class.getName()

                                .log(Level.SEVERE, null, ex);

            }

        }

    }

}

1.3 Phương pháp # 3: Sử dụng File và FileReader để đọc tệp

Phương pháp này tương tự như BufferedReader nhưng đơn giản hơn một chút.

package file;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.util.logging.Level;

import java.util.logging.Logger;

public class ReadFileWithFileAndFileReader {

    public static void main(String args[]) throws IOException {

        String url = “F:\\content-niit\\file-content.txt”;

        // Đọc dữ liệu từ File với File và FileReader

        File file = new File(url);

        BufferedReader reader = new BufferedReader(new FileReader(file));

        try {

            String line = reader.readLine();

            while (line != null) {

                System.out.println(line);

                line = reader.readLine();

            }

        } catch (FileNotFoundException ex) {

            Logger.getLogger(ReadFileWithBufferedReader.class.getName())

                            .log(Level.SEVERE, null, ex);

        } catch (IOException ex) {

            Logger.getLogger(ReadFileWithBufferedReader.class.getName())

                            .log(Level.SEVERE, null, ex);

        } finally {

            try {

                reader.close();

                // file.close();

            } catch (IOException ex) {

                Logger.getLogger(ReadFileWithBufferedReader.class.getName())

                                .log(Level.SEVERE, null, ex);

            }

        }

    }

}

Java hỗ trợ nhiều phương pháp xử lý file khác nhau nhưng 3 phương pháp chung trên là dễ áp dụng mà vẫn có thể giúp bạn xử lý bất kì tình huống nào gặp phải. Có một số phương pháp khó hơn, phức tạp hơn và ít được sử dụng hơn, nên nếu có thời gian, bạn có thể tự học để đa dạng code của mình.

>>> Xem thêm: 10 Lý do hàng đầu để học JavaScript làm ngôn ngữ lập trình nền tảng

2. Làm thế nào để đọc các tệp XML trong Java

Theo định nghĩa trong lập trình, file có nhiều định dạng khác nhau. Mỗi định dạng có một hoặc nhiều phương pháp xử lý khác nhau. Trong phạm vi một bài viết, rất khó để chia sẻ tất cả chúng, nên chúng tôi sẽ giới thiệu với các bạn một loại tệp phổ biến khác là tệp XML.

Mục đích chính của tệp XML là đơn giản hóa việc chia sẻ dữ liệu giữa các nền tảng và hệ thống được kết nối với Internet. Vì vậy, XML có tác dụng rất lớn trong việc chia sẻ và trao đổi dữ liệu giữa các hệ thống. Chính vì vậy, việc đọc/ ghi các tệp XML chắc chắn sẽ trở nên quan trọng. 

Trước khi tìm hiểu phương pháp đọc/ghi tệp dữ liệu XML trong Java, bạn cần chuẩn bị trước một tệp XML và thêm một số nội dung vào đó. Như trong ví dụ trước, chúng tôi đã tạo một tệp family.xml (trong thư mục F:\content-niit) với nội dung ví dụ sau:

<?xml version=“1.0”?>

<family>

    <member id=“4”>

        <firstname>Michael</firstname>

        <lastname>Corleone</lastname>

        <age>22</age>

        <earnings>$1.000.000</earnings>

    </member>

    <member id=“3”>

        <firstname>Tom</firstname>

        <lastname>Hagen</lastname>

        <age>26</age>

        <earnings>$300.000</earnings>

    </member>

</family>

Để đọc tệp XML ở trên, bạn cần sử dụng DOM XML – phân tích cú pháp toàn bộ tệp XML và lưu trữ nó trong bộ nhớ, sau đó lập mô hình nó dưới dạng cấu trúc TREE. Việc này được Java thực hiện tự động, công việc của bạn là lướt qua để kiểm tra dữ liệu

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.NodeList;

import org.w3c.dom.Node;

import org.w3c.dom.Element;

import java.io.File;

public class ReadFileXML {

    public static void main(String argv[]) {

        String url = “F:\\content-niit\\family.xml”;

        try {

            File fXmlFile = new File(url);

            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();

            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();

            Document doc = dBuilder.parse(fXmlFile);

            doc.getDocumentElement().normalize();

            NodeList nList = doc.getElementsByTagName(“member”);

            for (int temp = 0; temp < nList.getLength(); temp++) {

                Node nNode = nList.item(temp);

                if (nNode.getNodeType() == Node.ELEMENT_NODE) {

                    Element eElement = (Element) nNode;

                    System.out.println(“Con thứ: “

                                        + eElement.getAttribute(“id”));

                    System.out.println(“Tên: “

                                        + eElement.getElementsByTagName(“firstname”)

                                        .item(0).getTextContent());

                    System.out.println(“Họ: “

                                        + eElement.getElementsByTagName(“lastname”)

                                        .item(0).getTextContent());

                    System.out.println(“Tuổi: “

                                        + eElement.getElementsByTagName(“age”)

                                        .item(0).getTextContent());

                    System.out.println(“Thu nhập: “

                                        + eElement.getElementsByTagName(“earnings”)

                                        .item(0).getTextContent());

                    System.out.println(” “);

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

}

Tóm lại, có nhiều cách để đọc tệp trong Java. Tuy nhiên, Java hỗ trợ đầy đủ mọi nhu cầu thao tác trên file của bạn. Và tùy theo từng loại file khác nhau mà chúng ta sẽ lựa chọn các phương pháp xử lý khác nhau để đạt được kết quả tốt nhất. Mỗi phương pháp cũng có những ưu nhược điểm riêng nên trong quá trình luyện tập các bạn nhớ chú ý và lưu ý lại để lần sau có những chỉnh sửa hợp lý nhé.

Bài viết trên đây đã chia sẻ một số phương pháp đọc/ ghi tệp dữ liệu phổ biến trong Java. Hi vọng các thông tin mà FUNiX chia sẻ trên đây hữu ích trong quá trình học lập trình của các bạn và chúc bạn học tốt!

>>> Nếu bạn đang có nhu cầu tìm hiểu về khóa học lập trình đi làm ngay. Hãy liên hệ với FUNiX ngay tại đây:

>>> Xem thêm bài viết:

Ngôn ngữ lập trình Java: Hướng dẫn cho người mới bắt đầu về Java

Có nên lập trình game bằng C++, C#, Java và JavaScript?

Hỏi đáp về ngôn ngữ JavaScript cùng lập trình viên

Những trung tâm dạy học lập trình java trực tuyến trong vòng 6 tháng

Cách sử dụng Package và Collection có sẵn trong Java

 

Phạm Thị Thanh Ngọc

4.5 / 5 ( 2 votes ) ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX icon icon
  • đọc tệp dữ liệu trong java
  • ghi tệp dữ liệu trong java
  • java
  • phương pháp đọc file trong Java

Bình luận ( 0 )

Banner with Text Join ngay tại đây: https://zalo.me/460420070607380225

Categories

  • Chân dung Mentor - Hannah
  • Chân dung xTer
  • Chia sẻ kiến thức
  • Góc Nguyễn Thành Nam
  • Góc nhìn
  • Hỏi đáp CNTT
  • Hợp tác doanh nghiệp - Tuyển dụng
  • Sự kiện
  • Tin tức
  • xCareer
Banner 1 Banner 2 Banner 3

Bài liên quan

Vibe Coding Workflow: Từ Yêu Cầu Đến Code, Test Và Tài Liệu Với Sự Hỗ Trợ Của AI

Vì sao biết dùng ChatGPT chưa đủ để làm việc với AI trong lập trình?

So sánh Cursor và GitHub Copilot: Nên dùng công cụ nào cho lập trình với AI?

Vibe Coding Là Gì? Cách Lập Trình Viên Làm Việc Với AI Hiệu Quả Trong Kỷ Nguyên Mới

AI đang thay đổi công việc lập trình viên như thế nào?

AI Debug và AI Test: Lập trình viên nên tin AI đến mức nào?

Cách dùng AI để đọc hiểu codebase nhanh hơn cho developer và QA

Khóa học Vibe Coding: Xu hướng lập trình bắt buộc để không bị AI đào thải

Bài liên quan

Vibe Coding Workflow: Từ Yêu Cầu Đến Code, Test Và Tài Liệu Với Sự Hỗ Trợ Của AI

Ha NT 25/02/2026 Trong kỷ nguyên của trí tuệ nhân tạo (AI), thuật ngữ “Vibe Coding” đã nổi lên như một hiện tượng, thay đổi hoàn toàn cách chúng ta tiếp cận việc xây dựng phần mềm. Không còn đơn thuần là việc...

Vì sao biết dùng ChatGPT chưa đủ để làm việc với AI trong lập trình?

Ha NT 25/02/2026 Sự bùng nổ của các mô hình ngôn ngữ lớn khiến nhiều người tin rằng chỉ cần dùng ChatGPT trong lập trình là đã có thể “làm việc với AI”. Thực tế, ChatGPT có thể hỗ trợ viết code, giải...

So sánh Cursor và GitHub Copilot: Nên dùng công cụ nào cho lập trình với AI?

Ngoc nguyen 23/02/2026 Trong kỷ nguyên lập trình với AI, việc chọn lựa công cụ hỗ trợ (AI Code Editor/Extension) cũng quan trọng giống như việc chọn ngôn ngữ lập trình. Hai cái tên đang thống trị thị trường hiện nay là Cursor...

Vibe Coding Là Gì? Cách Lập Trình Viên Làm Việc Với AI Hiệu Quả Trong Kỷ Nguyên Mới

Ngoc nguyen 23/02/2026 Trong giới lập trình năm 2026, có một thuật ngữ đang làm mưa làm gió: Vibe Coding. Nếu bạn từng thấy ai đó dựng xong một ứng dụng web chỉ trong một buổi chiều bằng cách “chat” với máy tính,...

AI đang thay đổi công việc lập trình viên như thế nào?

Ha NT 13/02/2026 Trong vài năm trở lại đây, trí tuệ nhân tạo (AI) không còn là khái niệm mang tính nghiên cứu mà đã trở thành công cụ thực tế trong quy trình phát triển phần mềm. Câu hỏi đặt ra không...

AI Debug và AI Test: Lập trình viên nên tin AI đến mức nào?

Ha NT 10/02/2026 Mục lục AI debug và AI test là gì? Vì sao AI được dùng cho debug và test? AI debug hoạt động như thế nào? AI test hỗ trợ kiểm thử ra sao? AI debug & AI test trong SDLC...

Cách dùng AI để đọc hiểu codebase nhanh hơn cho developer và QA

Ha NT 10/02/2026 Mục lục AI đọc hiểu codebase là gì? Vì sao đọc hiểu codebase là bài toán khó? Vì sao AI giúp đọc code nhanh hơn? AI đọc và phân tích codebase như thế nào? AI đọc code cho developer AI...

Khóa học Vibe Coding: Xu hướng lập trình bắt buộc để không bị AI đào thải

Ngoc nguyen 22/01/2026 ​Khi 60–70% lập trình viên trên thế giới đã sử dụng AI để hỗ trợ viết code và debug, câu hỏi đặt ra không phải là “Có nên dùng AI không?” mà là “Dùng AI thế nào để tối ưu...

Đăng ký nhận bản tin

Nhận bản tin, báo cáo từ các chuyên gia hàng đầu về lĩnh vực Công nghệ thông tin mới nhất! × × Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao
  • Tầng 0, tòa nhà FPT, 17 Duy Tân, phường Cầu Giấy, Hà Nội
  • [email protected]
  • 0782313602 (Zalo, Viber)        

Về chúng tôi

Học gì ở FUNiX

Tin tức

Cơ quan chủ quản: Công ty Cổ phần Giáo dục Trực tuyến FUNiX MST: 0108171240 do Sở kế hoạch và Đầu tư thành phố Hà Nội cấp ngày 27 tháng 02 năm 2018

– Văn phòng Hà Nội:

+ Tầng 4, Tòa nhà 25T2, đường Nguyễn Thị Thập, phường Yên Hòa, Hà Nội.

+ Tầng 0, tòa nhà FPT, đường 17 Duy Tân, phường Cầu Giấy, Hà Nội.

– Văn phòng TP.HCM: Lầu 3A, tòa nhà 51-53 Võ Văn Tần, Phường Xuân Hòa, Thành phố Hồ Chí Minh, Việt Nam

Hotline: 078 231 3602 – Email: [email protected]

yêu cầu gọi lại

Yêu cầu FUNiX gọi lại để hỗ trợ thông tin, chương trình học, chỉ tiêu - điều kiện tuyển sinh - học phí,... hoàn toàn FREE

Từ khóa » đọc File Trong Java Dụng Scanner