[Java IO] Bài 14: Ghi File Ký Tự Trong Java

Ở bài ghi file nhị phân trong Java mình có nói là trong trường hợp nào mình sẽ dùng stream cho phù hợp. Với tiêu đề ở trên thì mình xác định là dùng stream PrintWriter để ghi file ký tự trong Java.

Đặt vấn đề :

Bây giờ mình có một danh sách sinh viên với sinh viên có những thuộc tính là mssv, tên, tuổi, và danh sách môn học, môn học có những thuộc tính như là tên môn học, tín chỉ, điểm. Làm sao để lưu danh sách sinh viên xuống file ký tự?

Giải quyết vấn đề ghi file ký tự trong Java:

Với vấn đề đặt ra thì mình xác định sẽ có một class SinhVien, class MonHoc và một class xử lý để lưu danh sách sinh viên xuống file nhị phân, mình gọi class này là WriteCharacterFile, ở cuối bài viết có source code các bạn có thể download về để  xem chi tiết hơn.

Class SinhVien với các thuộc tính như mã số sinh viên, tên, tuổi và danh sách môn học.

Class MonHoc với các thuộc tính như tên môn học, số tín chỉ và điểm.

Class WriteCharacterFile :

Diễn giải ghi file ký tự trong Java:

Dựa vào đường dẫn mở stream để ghi file, ghi số lượng sinh viên trong danh sách sinh viên.

Duyệt danh sách sinh viên và danh sách môn học của từng sinh viên ghi vào file ký tự.

Đẩy dữ liệu đi và đóng stream.

phương thức main của java dùng để chạy chương trình, thì ở trong phương thức này mình tạo ra một danh sách sinh viên có 2 sinh viên và danh sách môn học đây chỉ là dữ liệu mình tạo ra để ghi xuống file.

Kết quả ghi file ký tự trong Java:

Do là stream ký tự nên kết quả khi mở file mình sẽ đọc được.

Việc ghi file ký tự trong Java cũng khá đơn giản phải không các bạn, nếu bạn muốn ghi ra file mà không đọc được thì sử dụng ghi file nhị phân ngược lại thì là ghi file ký tự.

Download source code bài viết bên dưới.

Download link Google Drive

Download link Vipshare

Download link Mshare

(Tác giả: Công Minh)

3 thoughts on “[Java IO] Bài 14: Ghi File Ký Tự Trong Java

  1. Đặng Hữu Nghĩa

    - Edit

    Reply

    Nếu thông tin sinh viên có theo trường là ngày sinh (private Date ngaySinh;). class Date{ int ngay;int thang;int nam} . thì mình ghi sao ad.

    1. Chào bạn,
      bạn chỉ cần lấy đối tượng SinhVien get ra Date là được. Lưu ý khi tạo ra đối tượng SinhVien bạn phải gán Date vào.

      Bạn tham khảo.

      public static void main(String[] args) throws IOException {
      MonHoc mh = new MonHoc(“ltcb”, 3, 6.7);
      MonHoc mh1 = new MonHoc(“ltw”, 3, 6.7);
      MonHoc mh2 = new MonHoc(“tkhdt”, 3, 6.7);
      ArrayList listMH = new ArrayList();
      listMH.add(mh2);
      listMH.add(mh1);
      listMH.add(mh);
      Date ngaySinh = new Date(1, 1, 1990);
      ArrayList listSV = new ArrayList();
      SinhVien sv = new SinhVien(“11329078”, “nguyen van A”, 23, ngaySinh, listMH);
      SinhVien sv1 = new SinhVien(“11329078”, “nguyen Van B”, 23, ngaySinh, listMH);
      listSV.add(sv);
      listSV.add(sv1);
      saveSinhVien(“E:\\test.txt”, listSV);
      }

      public static void saveSinhVien(String src, ArrayList listSV)
      throws IOException {
      PrintWriter pwr = new PrintWriter(src);
      pwr.println(listSV.size());
      for (SinhVien sv : listSV) {
      pwr.append(sv.getMssv() + “\t” + sv.getTen() + “\t” + sv.getTuoi()+ “\t” +
      sv.getNgaySinh().toString() + “\t”+ sv.getListMH().size() + “\r\n”);
      for (MonHoc mh : sv.getListMH()) {
      pwr.append(mh.getTenMonHoc() + “\t” + mh.getTinChi() + “\t”
      + mh.getDiem() + “\r\n”);
      }
      }
      pwr.flush();
      pwr.close();
      }

      Chúc bạn thành công!

Bình luận

Loading...