NỘI DUNG BÀI VIẾT
Ở 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é!
>> Xem ngay Tài liệu Java Core giúp bạn “Nâng Cấp” kỹ năng lập trì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"); } }