Tôi không nghĩ rằng đây có thể vì những lý do sau đây:
- Làm thế nào để bạn viết một tập tin mà không cần "đọc" nó?
- Bạn sẽ cần phải đọc trong văn bản để biết ranh giới ký tự ở đâu (mã hóa không nhất thiết phải là 1 byte). Điều này có nghĩa là bạn không thể xử lý tệp dưới dạng nhị phân.
Thực sự không thể đọc từng dòng và xử lý nó như vậy? Điều đó cũng tiết kiệm không gian bổ sung mà các tập tin phân chia sẽ mất cùng với bản gốc. Để bạn tham khảo, việc đọc một tệp văn bản chỉ đơn giản là:
public static void loadFileFromInputStream(InputStream in) throws IOException {
BufferedReader inputStream = new BufferedReader(new InputStreamReader(in));
String record = inputStream.readLine();
while (record != null) {
// do something with the record
// ...
record = inputStream.readLine();
}
}
Bạn chỉ đọc một dòng tại một thời điểm ... do đó kích thước tệp không ảnh hưởng đến hiệu suất. Bạn cũng có thể dừng bất kỳ lúc nào bạn phải làm. Nếu bạn đang mạo hiểm, bạn cũng có thể thêm các dòng để phân tách các chủ đề để tăng tốc độ xử lý. Bằng cách đó, IO có thể tiếp tục khuấy động trong khi bạn xử lý dữ liệu của mình.
Chúc may mắn! Nếu vì một lý do nào đó, bạn tìm được giải pháp, hãy đăng nó ở đây. Cảm ơn!
Nguồn
2011-11-24 11:34:46
thẻ "tệp" được đề xuất –