Luồng nhập tệp Java trong Ubuntu 20.04

Luong Nhap Tep Java Trong Ubuntu 20 04



“Trong bài viết này, chúng ta sẽ thảo luận về các cách khác nhau để đọc dữ liệu từ các tệp vào một mảng byte bằng cách sử dụng lớp Java Input Stream. Lớp này đại diện cho một dòng byte được sắp xếp từ một tệp. Có nhiều hàm trong lớp Java Input Stream thường được sử dụng và sẽ được thảo luận trong bài viết này, như các phương thức read (), sẵn có (), bỏ qua () và close (). Các phương thức này được sử dụng để đọc các tệp có phần mở rộng khác nhau như tệp bin hoặc txt và có thể được thay đổi để lấy thông tin từ bất kỳ điểm nào trong tệp. Chúng tôi sẽ thực hiện các phương pháp này trong môi trường Ubuntu 20.04 trong bài viết này.

Có nhiều phương thức khác của lớp File Input Stream cũng rất hữu ích trong việc lấy dữ liệu từ một tệp; một số trong số chúng là int read (byte [] b), hàm này đọc dữ liệu từ luồng đầu vào có độ dài lên đến b.length byte. Kênh Tệp nhận được kênh (): Đối tượng Kênh Tệp cụ thể được kết nối với luồng đầu vào tệp được trả về bằng cách sử dụng nó. Finalize () được sử dụng để đảm bảo rằng hàm close () được gọi khi không còn tham chiếu đến luồng đầu vào tệp. ”

Ví dụ 01: Đọc một byte đơn từ tệp văn bản bằng phương thức read () và close () của lớp luồng đầu vào

Ví dụ này sử dụng File Input Stream để đọc một ký tự và in ra nội dung. Giả sử chúng ta có một tệp có tên là “file.txt” với nội dung được hiển thị bên dưới:









Giả sử chúng ta có một tệp tên là “file.txt” với nội dung như hình trên. Bây giờ chúng ta hãy thử đọc và in ký tự đầu tiên của tệp.







Đầu tiên chúng ta phải nhập java.io. Gói Luồng đầu vào tệp để tạo luồng đầu vào tệp. Sau đó, chúng ta sẽ tạo một đối tượng mới của File Input Stream sẽ được liên kết với tệp được chỉ định (file.txt) trong biến “f”.

Trong ví dụ này, chúng ta sẽ sử dụng phương thức “int read ()” của lớp Java File Input Stream, được sử dụng để đọc một byte đơn từ tệp và lưu nó trong biến “I”. Tiếp theo, “System.out.print (char (i))” hiển thị ký tự tương ứng với byte đó.



Phương thức f.close () đóng tệp và luồng. Chúng ta sẽ nhận được kết quả sau sau khi xây dựng và chạy tập lệnh nói trên, vì chúng ta chỉ có thể thấy chữ cái đầu tiên của văn bản “L” được in.

Ví dụ 02: Đọc tất cả nội dung của tệp văn bản bằng phương thức read () và close () của lớp luồng đầu vào

Trong ví dụ này, chúng ta sẽ đọc và hiển thị tất cả nội dung của một tệp văn bản; như hình bên dưới:

Một lần nữa, chúng tôi sẽ nhập java.io. Gói Luồng đầu vào tệp để tạo luồng đầu vào tệp.

Đầu tiên, chúng ta sẽ đọc byte đầu tiên của tệp và hiển thị ký tự tương ứng bên trong vòng lặp while. Vòng lặp while sẽ chạy cho đến khi không còn byte nào, tức là kết thúc văn bản trong tệp. Dòng 12 sẽ đọc byte tiếp theo, và vòng lặp sẽ tiếp tục cho đến byte cuối cùng của tệp.

Sau khi biên dịch và thực thi đoạn mã trên, chúng ta sẽ nhận được kết quả như sau. Như chúng ta có thể thấy, toàn bộ văn bản của tệp “Lorep Ipsum” được hiển thị trong thiết bị đầu cuối.

Ví dụ 03: Xác định số byte có sẵn trong tệp văn bản bằng cách sử dụng phương thức sẵn có () của lớp luồng đầu vào

Trong ví dụ này, chúng tôi sẽ sử dụng hàm “sẵn có ()” của Luồng nhập tệp để xác định số byte hiện có trong luồng nhập tệp.

Đầu tiên, chúng tôi tạo một đối tượng của lớp luồng đầu vào tệp có tên là “a” với đoạn mã sau. Trong dòng 5, chúng tôi đã sử dụng phương thức “sẵn có ()” để xác định và hiển thị tổng số byte có sẵn trong tệp. Sau đó, từ dòng 6 đến dòng 8, chúng tôi sử dụng hàm “read ()” ba lần. Bây giờ ở dòng 9, chúng tôi đã sử dụng lại phương thức “available ()” để kiểm tra và hiển thị các byte còn lại.

Sau khi biên dịch và chạy mã, chúng ta có thể thấy dòng đầu tiên của đầu ra hiển thị tổng số byte có sẵn trong tệp. Dòng tiếp theo hiển thị số byte có sẵn ở cuối mã, ít hơn 3 byte có sẵn ở đầu. Điều này là do chúng tôi đã sử dụng phương pháp đọc ba lần trong mã của mình.

Ví dụ 04: Bỏ qua các byte của tệp văn bản để đọc dữ liệu từ một điểm cụ thể bằng phương thức bỏ qua () của lớp luồng đầu vào

Trong ví dụ này, chúng ta sẽ sử dụng phương thức “bỏ qua (x)” của Luồng đầu vào tệp, được sử dụng để bỏ qua và bỏ qua số byte dữ liệu đã cho từ luồng đầu vào.

Trong đoạn mã dưới đây, trước tiên, chúng ta đã tạo một luồng đầu vào tệp và lưu trữ nó trong biến “a”. Tiếp theo, chúng tôi đã sử dụng phương thức “a.skip (5)”, phương thức này sẽ bỏ qua 5 byte đầu tiên của tệp. Tiếp theo, chúng tôi in các ký tự còn lại của tệp bằng phương thức “read ()” bên trong vòng lặp while. Cuối cùng, chúng tôi đóng luồng đầu vào tệp bằng phương thức “close ()”.

Dưới đây là ảnh chụp màn hình của thiết bị đầu cuối sau khi biên dịch và chạy mã. Như chúng ta có thể thấy, chỉ “Ipsum” được hiển thị vì chúng tôi đã bỏ qua 5 byte đầu tiên bằng phương thức “bỏ qua ()”.

Sự kết luận

Trong bài viết này, chúng ta đã thảo luận về việc sử dụng lớp File Input Stream và các phương thức khác nhau của nó; read (), sẵn có (), bỏ qua () và đóng (). Chúng tôi đã sử dụng các phương thức này để đọc phần tử đầu tiên của tệp bằng cách sử dụng phương thức read () và close (). Sau đó, chúng tôi đọc toàn bộ tệp thông qua cách tiếp cận lặp lại và sử dụng các phương pháp tương tự. Sau đó, chúng tôi sử dụng phương thức sẵn có () để xác định số byte hiện diện khi bắt đầu và hoàn thành tệp. Sau đó, chúng tôi sử dụng phương thức bỏ qua () để bỏ qua một số byte trước khi đọc tệp, cho phép chúng tôi lấy dữ liệu cụ thể mà chúng tôi cần.