Tôi muốn có thể thực hiện truy cập ngẫu nhiên vào một tệp được nén. Tôi có thể đủ khả năng để thực hiện một số tiền xử lý (ví dụ, xây dựng một số loại chỉ mục), miễn là kết quả của quá trình tiền xử lý nhỏ hơn nhiều so với bản thân tệp.Truy cập ngẫu nhiên vào luồng gzip
Bạn có lời khuyên nào không?
Suy nghĩ của tôi là:
- Hack vào một thực hiện gzip hiện có và serialize bang decompressor của nó mỗi, nói, 1 megabyte dữ liệu nén. Sau đó, để thực hiện truy cập ngẫu nhiên, deserialize trạng thái giải nén và đọc từ ranh giới megabyte. Điều này có vẻ khó khăn, đặc biệt là kể từ khi tôi đang làm việc với Java và tôi không thể tìm thấy một thực hiện gzip thuần java: (
- Nén lại tệp theo khối 1Mb và thực hiện tương tự như trên.
- Viết trình phân tích cú pháp đơn giản của định dạng gzip không thực hiện giải nén và chỉ phát hiện và lập chỉ mục các ranh giới khối (nếu có bất kỳ khối nào: Tôi chưa đọc mô tả định dạng gzip)
Cảm ơn, đó là mát mẻ! Nếu tôi chỉ tìm thấy cách để sử dụng nó một cách thoải mái từ Java .. – jkff
@jkff: Nếu bạn không cần triển khai đa nền tảng, hãy kiểm tra JNA. Thật đáng ngạc nhiên khi sử dụng như một cách để gọi các thư viện C. –
Cảm ơn một lần nữa, tôi đã làm như vậy và nó hoạt động như một sự quyến rũ!Rex, cảm ơn bạn: Tôi đã sử dụng JNA :) – jkff