Java I/O - Đọc file với lớp SequenceInputStream

Đọc file trong java với lớp SequenceInputStream

Lớp SequenceInputStream trong java được sử dụng để đọc dữ liệu từ nhiều stream. Nó đọc dữ liệu tuần tự (từng cái một).

Khai báo của lớp SequenceInputStream

Dưới đây là khi báo của lớp Java.io.SequenceInputStream:

public class SequenceInputStream extends InputStream

Các constructor của lớp SequenceInputStream

Constructor Mô tả
SequenceInputStream(InputStream s1, InputStream s2) Tạo ra một input stream mới bằng cách đọc dữ liệu của hai input stream theo thứ tự, đầu tiên s1 và sau đó s2.
SequenceInputStream(Enumeration e) Tạo ra một input stream mới bằng cách đọc dữ liệu của một Enumeration mà kiểu của nó là InputStream.

Các phương thức của lớp SequenceInputStream

Phương thức Mô tả
int read() Nó được sử dụng để đọc byte tiếp theo của dữ liệu từ input stream.
int read(byte[] ary, int off, int len) Nó được sử dụng để đọc len byte dữ liệu từ dòng đầu vào vào mảng các byte tử vị trí off.
int available() Nó được sử dụng để trả lại số byte tối đa có thể được đọc từ một input stream.
void close() Nó được sử dụng để đóng input stream.

Ví dụ về đọc file trong java với lớp SequenceInputStream

Trong ví dụ này, chúng ta in dữ liệu của hai file testin.txt và testout.txt.

Giả sử các file testin.txt và testout.txt có nội dung như sau:

File: testin.txt

Welcome to Java IO.

 File: testout.txt

It is the example of SequenceInputStream.

File: SequenceInputStreamExample.java

import java.io.FileInputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
 
public class SequenceInputStreamExample {
    public static void main(String args[]) throws Exception {
        FileInputStream input1 = null;
        FileInputStream input2 = null;
        SequenceInputStream inst = null;
        try {
            input1 = new FileInputStream("D:\\testin.txt");
            input2 = new FileInputStream("D:\\testout.txt");
            inst = new SequenceInputStream(input1, input2);
            int j;
            while ((j = inst.read()) != -1) {
                System.out.print((char) j);
            }
        } catch (IOException ex) {
 
        } finally {
            inst.close();
            input1.close();
            input2.close();
        }
    }
}

Output của chương trình trên:

Welcome to Java IO.It is the example of SequenceInputStream.

Ví dụ về đọc dữ liệu của 2 file và ghi vào một file khác

Trong ví dụ này, chúng ta đọc dữ liệu của từ 2 file testin.txt và testout.txt sau đó ghi dữ liệu vào file có tên là testout2.txt.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.SequenceInputStream;
 
public class SequenceInputStreamExample2 {
    public static void main(String args[]) throws IOException {
        FileInputStream fin1 = new FileInputStream("D:\\testin.txt");
        FileInputStream fin2 = new FileInputStream("D:\\testout.txt");
        FileOutputStream fout = new FileOutputStream("D:\\testout2.txt");
        SequenceInputStream sis = new SequenceInputStream(fin1, fin2);
        int i;
        while ((i = sis.read()) != -1) {
            fout.write(i);
        }
        sis.close();
        fout.close();
        fin1.close();
        fin2.close();
        System.out.println("Success..");
    }
}

Xuất ra:

Succeess...

Nội dung của file output testout2.txt

Welcome to Java IO.It is the example of SequenceInputStream.