By GokiSoft.com| 15:52 25/03/2020|
Java Advanced

Share Code - Bài giảng nén file & giải nén File - T1907A

Video hướng dẫn bài giảng



/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package java2.lession3;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.DeflaterInputStream;

/**
 *
 * @author Diep.Tran
 */
public class Main {
    public static void main(String[] args) throws FileNotFoundException, IOException {
        //Thuc hien nen file data.txt
        String filename = "data.txt";
        //file data.txt => du lieu thuong => nen bang thu vien java
        //tao 1 connection doc du lieu tu file data.txt
        FileInputStream fis = new FileInputStream(filename);
        
        //thanh thu vien co nhiem vu gi
        //doc du lieu tu fis => chuyen sang dis => du lieu dau ra se dc nen luon
        DeflaterInputStream dis = new DeflaterInputStream(fis);
        
        //lu du lieu sau khi nen tu dis => sang file moi
        String zipFileName = "data.def";
        FileOutputStream fos = new FileOutputStream(zipFileName);
        
        //thuc hien qua trinh
        //doc du lieu tho (fis) -> nen boi dis => luu xuong file (fos)
        int code;
        while((code = dis.read()) != -1) {
            fos.write(code);
        }
        
        //xong qua trinh nen va luu file
        //dong ket noi
        fos.close();
        dis.close();
        fis.close();
        System.out.println("Ket thuc qua trinh nen file");
        
        //Co che cua doan code tren
        //File data (source ko nén => dùng bộ dọc dữ liệu (fis : FileInputStream)
        //=> Nén bởi thư viện dis : DeflaterInputStream -> lưu xuông file bởi thư viên
        //FileOutputStream
    }
}

Phần 1. Bài cũ
- Giải đáp các vấn đề của buổi trước
=>Files ???
- Hướng dẫn chữa bài tập
=> Chữa bài tập thì hợp lý hơn

Phần 2. Bài mới
- Nén & giải nén File
Lib => nen du lieu
Nhiem vu Nen data => du lieu nho di
=> thuan tien gui data qua internet
Chu y:
Nen File => du lieu text
binary (image, video, audio) => nen ko co tac
dung j dau
neu muon nen File (binary) => chi co giai phap cu the
ko co giai phap chung
image (bitmap => jpg, jpeg, ...)
audio => giam frame * video => giam chat luong di
(code = dis.read()) != -1
=> dis.read()
=> đọc dữ liệu sau khi nén
fos.write(code); => lưu xuông file data.def
Phần vừa rồi các bạn học các nén FIle
Tiếp theo chung ta tìm hiểu cách giải nén File
=> Theo mô hình đó các bạn code là được
=> Quan sát kỹ: 
  Quá trình nén và giải nén đều xuất phát từ
  bạn đọc dữ liệu
=> các bạn cũng có thể lam điều ngược lại
=> Tất cả quá trình nén và giải nến từ phía
ghi => các bạn sử dụng các bô thư viện sau 

Mô hình này thầy đang mô tả quá trình
- Nén => lúc đoc dữ liệu từ file
- Giải nén => lúc đọc dữ liệu từ file
Quá trình lúc ghi dữ liệu
- DeflaterOutputStream
- InflaterOutputStream

- Thread (Kha hay)
- Basic => Dễ
- Advanced => Sync => tập chung và thực hành nhiều hơn

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)