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.