Code Java cơ bản

Code Java cơ bản về thao tác với File text

các bài trước chúng ta đã được luyện tập với các kiến thức cơ bản, nền tảng của ngôn ngữ Java. Ở bài viết này chúng ta sẽ cũng tìm hiểu về code Java cơ bản với thao tác đọc ghi file text nhé!

Code Java cơ bản – thao tác với file Text

Đề bài

Thao tác với file là một trong những kỹ năng cơ bản mà các lập trình viên cần phải nắm được. Thao tác với file giúp chúng ta có thể lưu trữ được các dữ liệu quan trong. Vậy nên cùng thử làm một số bài tập dưới đây nhé!

Bài tập 1:

  • Viết chương trình tính tổng các số có trong file:
    • Cho 1 file numbers.txt chứa các số mỗi số nằm ở một dòng.
    • Đọc file numbers.txt.
    • Thực hiển tính tổng các số có trong file và hiển thị trên màn hình.

Bài tập 2:

  • Viết chương trình tìm số lớn nhất trong các số có trong file:
    • Cho 1 file numbers.txt chứa các số mỗi số nằm ở một dòng.
    • Đọc file numbers.txt.
    • Thực hiển tìm giá trị lớn nhất và hiển thị kết quả trên màn hình.

Bài tập 3:

  • Viết chương trình ghi danh sách các sinh viên ra file student.txt
    • Tạo lớp Student có các thuộc tính: mã sinh viên, họ tên, quê quán
    • Thực hiện việc ghi danh sách sinh viên ra file student.txt

Lời giải

Cùng tìm lời giải cho các bài tập trên ở đây nha!

Bài tập 1:

  • Viết chương trình tính tổng các số có trong file:
    • Cho 1 file numbers.txt chứa các số mỗi số nằm ở một dòng.
    • Đọc file numbers.txt.
    • Thực hiển tính tổng các số có trong file và hiển thị trên màn hình.
  • Chương trình:
import java.io.*;

public class EX1 {
    public static void main(String[] args) {
        try {
            FileReader fileReader = new FileReader("numbers.txt");
            BufferedReader br = new BufferedReader(fileReader);
            String line = "";
            int sum = 0;
            while ((line = br.readLine()) != null) {
                sum += Integer.parseInt(line);
            }
            br.close();
            fileReader.close();
            System.out.println("Tổng = " + sum);
        } catch (IOException e) {
            System.err.println("Fie không tồn tại!");
        }
    }
}

Bài tập 2:

  • Viết chương trình tìm số lớn nhất trong các số có trong file:
    • Cho 1 file numbers.txt chứa các số mỗi số nằm ở một dòng.
    • Đọc file numbers.txt.
    • Thực hiển tìm giá trị lớn nhất và hiển thị kết quả trên màn hình.
  • Chương trình:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class EX2 {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        try {
            FileReader fileReader = new FileReader("numbers.txt");
            BufferedReader br = new BufferedReader(fileReader);
            String line = "";
            while ((line = br.readLine()) != null) {
                numbers.add(Integer.parseInt(line));
            }
            br.close();
            fileReader.close();
        } catch (IOException e) {
            System.err.println("Fie không tồn tại!");
        }
        int max = numbers.get(0);
        for (int i = 0; i < numbers.size(); i++) {
            if (max < numbers.get(i)) {
                max = numbers.get(i);
            }
        }
        System.out.println("Giá trị lớn nhất: " + max);
    }
}

Bài tập 3:

  • Viết chương trình ghi danh sách các sinh viên ra file student.txt
    • Tạo lớp Student có các thuộc tính: mã sinh viên, họ tên, quê quán
    • Thực hiện việc ghi danh sách sinh viên ra file student.txt
  • Chương trình:

Student.class

package com.company;

public class Student {
    private String id;

    private String name;

    private String birthday;

    public Student(String id, String name, String birthday) {
        this.id = id;
        this.name = name;
        this.birthday = birthday;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return id + "," + name + "," + birthday;
    }
}

StudentManagement.class

package com.company;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class StudentManagement {
    public static List<Student> students = new ArrayList<>();

    public void showAll() {
        for (Student student : students) {
            System.out.println(student);
        }
    }

    public void addStudent(Student student) {
        students.add(student);
    }

    public void readStudentFromFile(String path) throws IOException {
        FileReader fileReader = new FileReader(path);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            String studentLine[] = line.split(",");
            String studentId = studentLine[0];
            String studentName = studentLine[1];
            String studentBirthday = studentLine[2];
            Student student = new Student(studentId, studentName, studentBirthday);
            students.add(student);
        }
        bufferedReader.close();
        fileReader.close();
    }

    public void writeStudentListToFile(String path) throws IOException {
        FileWriter fileWriter = new FileWriter(path);
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
        for (int i = 0; i < students.size(); i++) {
            bufferedWriter.write(students.get(i).toString());
            if (i != students.size() - 1) {
                bufferedWriter.write("\n");
            }
        }
        bufferedWriter.close();
        fileWriter.close();
    }
}

StudentMain.class

package com.company;

import java.io.IOException;
import java.util.Scanner;

public class StudentMain {
    public static Scanner sc = new Scanner(System.in);
    private static StudentManagement studentManagement = new StudentManagement();

    public static void main(String[] args) {
        int choice;
        do {
            menu();
            System.out.println("Nhập lựa chọn");
            choice = sc.nextInt();
            sc.nextLine();
            switch (choice) {
                case 1: {
                    showAllStudent();
                    break;
                }
                case 2: {
                    addNewStudent();
                    break;
                }
                case 3: {
                    readFile();
                    break;
                }
                case 4: {
                    writeFile();
                    break;
                }
            }
        } while (choice != 0);
    }

    private static void writeFile() {
        try {
            studentManagement.writeStudentListToFile("student.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void readFile() {
        try {
            studentManagement.readStudentFromFile("student.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    private static void addNewStudent() {
        System.out.println("Nhập id:");
        String id = sc.nextLine();
        System.out.println("Nhập tên:");
        String name = sc.nextLine();
        System.out.println("Nhập ngày sinh:");
        String birthday = sc.nextLine();
        Student student = new Student(id, name, birthday);
        studentManagement.addStudent(student);
    }

    private static void showAllStudent() {
        studentManagement.showAll();
    }

    private static void menu() {
        System.out.println("Menu");
        System.out.println("1. Hiển thị danh sách");
        System.out.println("2. Thêm học viên");
        System.out.println("3. Đọc danh sách viên có sẵn trong file");
        System.out.println("4. Ghi danh sách học viên hiện có ra file");
        System.out.println("0. Thoát");
    }
}

KHÓA HỌC LẬP TRÌNH CĂN BẢN CHO NGƯỜI MỚI BẮT ĐẦU!


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bài viết liên quan

Leave a Reply

Your email address will not be published.

TÀI LIỆU DEV WORLD
Cẩm nang phát triển bền vững với nghề lập trình!