Lớp InputStream Và OutputStream Trong Java - Góc Học IT
Có thể bạn quan tâm
1. I/O Stream trong Java
Trong Java, dòng (stream) – còn gọi là luồng, là chuỗi dữ liệu được đọc (read) từ nơi được lưu trữ (data source) và được ghi (write) tới nơi cần lưu trữ (data destination). Input stream được sử dụng để đọc dữ liệu từ data source. Output stream được sử dụng để ghi dữ liệu vào data destination.
Tùy thuộc vào dữ liệu mà một dòng (stream) lưu giữ, nó có thể được phân loại thành:
- Dòng Byte (Byte Stream)
- Dòng ký tự (Character Stream)
Dòng Byte (Byte Stream) được sử dụng để đọc và ghi một byte (8 bit) của dữ liệu (data). Tất cả các lớp xử lý dòng byte đều kế thừa từ các lớp abstract là InputStream và OutputStream.
Dòng ký tự (Character Stream) được sử dụng để đọc và ghi một ký tự của dữ liệu (data). Tất cả các lớp xử lý dòng ký tự đều kế thừa từ các lớp abstract là Reader và Writer.
2. Lớp InputStream trong Java
Lớp abstract InputStream trong Java nằm trong package java.io giúp xử lý input stream của dòng Byte (Byte Stream). Không thể tạo đối tượng của lớp InputStream mà có thể tạo các đối tượng của các lớp kế thừa nó để đọc dữ liệu (data).
Các lớp kế thừa lớp abstract InputStream trong Java là FileInputStream, ByteArrayInputStream, ObjectInputStream và BufferedInputStream.
Tạo ra một InputStream
Đầu tiên, cần import java.io.InputStream. Sau đó, tạo InputStream với các đối tượng của các lớp con của nó.// Creates an InputStream InputStream object1 = new FileInputStream();
Trong ví dụ trên, chúng ta tạo một InputStream sử dụng FileInputStream. Chúng ta cũng có thể tạo InputStream với các lớp con khác của.
Các phương thức của InputStream
InputStream giúp đọc dữ liệu theo từng byte. Các phương thức thông dụng của InputStream để thao tác với byte là:
- read() đọc một byte dữ liệu từ input stream
- read(byte[] array) đọc các byte dữ liệu từ stream và lưu trữ các byte đọc được vào mảng (array)
- available() trả về số byte có sẵn trong input stream
- skips() bỏ qua và giải phóng một số byte từ input stream
- close() đóng kết nối input stream
Ví dụ sử dụng InputStream với lớp con là FileInputStream
Chúng ta muốn đọc một file input.txt nằm trong phân vùng D. Chúng ta cần tạo ra một InputStream với lớp con là FileInputStream.import java.io.FileInputStream; import java.io.InputStream; class Main { public static void main(String args[]) { byte[] array = new byte[100]; try { InputStream input = new FileInputStream("D:\\input.txt"); System.out.println("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); } catch (Exception e) { e.getStackTrace(); } } }
Kết quả
Available bytes in the file: 38 Data read from the file: This is a line of text inside the file3. Lớp OutputStream trong Java
Lớp abstract OutputStream nằm trong package java.io giúp xử lý output stream của dòng Byte (Byte Stream). Không thể tạo đối tượng của lớp OutputStream mà có thể tạo các đối tượng của các lớp kế thừa nó để ghi dữ liệu (data).
Các lớp kế thừa lớp abstract OutputStream là FileOutputStream, ByteArrayOutputStream, ObjectOutputStream và BufferedOutputStream.
Tạo ra một OutputStream
Đầu tiên, cần import java.io.OutputStream. Sau đó, tạo OutputStream với các đối tượng của các lớp con của nó.// Creates an OutputStream OutputStream object1 = new FileOutputStream();
Trong ví dụ trên, chúng ta tạo một OutputStream sử dụng FileOutputStream. Chúng ta cũng có thể tạo OutputStream với các lớp con khác của.
Các phương thức của OutputStream
OutputStream giúp ghi dữ liệu theo từng byte. Các phương thức thông dụng của OutputStream để thao tác với byte là:
- write() ghi byte dữ liệu vào output stream
- write(byte[] array) ghi các byte dữ liệu từ một mảng (array) vào output stream
- flush() bắt buộc phải ghi tất cả dữ liệu có trong output stream đến nơi cần lưu trữ dữ liệu (data destination)
- close() đóng kết nối output stream
Ví dụ sử dụng OutputStream với lớp con là FileOutputStreamimport java.io.FileOutputStream; import java.io.OutputStream; public class Main { public static void main(String args[]) { String data = "This is a line of text inside the file."; try { OutputStream out = new FileOutputStream("D:\\output.txt"); // Converts the string into bytes byte[] dataBytes = data.getBytes(); // Writes data to the output stream out.write(dataBytes); System.out.println("Data is written to the file."); // Closes the output stream out.close(); } catch (Exception e) { e.getStackTrace(); } } }
Kết quả
Data is written to the file.Trong ví dụ trên, chúng ta muốn ghi dữ liệu vào file output.txt nằm trong phân vùng D. Chúng ta cần tạo ra một OutputStream với lớp con là FileOutputStream.
- Giới thiệu môn học Ngôn ngữ lập trình Java
- Lớp (class) và cách xây dựng lớp trong Java
- Ngăn xếp (stack) là gì? Cách xây dựng ngăn xếp
- Cách xử lý ngoại lệ (exceptions) trong Java
- Một số kỹ thuật lập trình với kiểu dữ liệu cấu trúc (struct) trong C++
Từ khóa » File Io Trong Java Là Gì
-
[Java IO - Từ Tổng Quan Tới Chi Tiết] Bài 0 : Giới Thiệu
-
Java I/O - Học Java Miễn Phí Hay Nhất - VietTuts
-
File Và I/O Trong Java - Hoclaptrinh
-
Giới Thiệu Luồng Vào Ra (I/O) Trong Java - GP Coder (Lập Trình Java)
-
Tổng Quan Về File Và I/O Trong Ngôn Ngữ Java - CodeGym
-
File, Xử Lý đầu Vào Ra (I/O) Trong Java - Thủ Thuật
-
Tìm Hiểu Java IO - Team Việt Dev
-
Java IO Gì Mà Linh Tinh Quá Vậy? - Deft Blog
-
Làm Việc Với File Trong Java
-
[PDF] Java IO Stream - CSE
-
File Và I/O Trong Java - đọc Và Ghi File Trong Java
-
[PDF] Bài 11: Input Và Output - HUST
-
Lập Trình Java Căn Bản - Chương 5 Input – Output Trong Java
-
Hướng Dẫn Sử Dụng Luồng Vào Ra Ký Tự Trong Java - VietMX's Blog