Apache Commons IO - TeeInputStream

Nó là một proxy InputStream ghi một cách rõ ràng bản sao của tất cả các byte được đọc từ luồng proxy vào một Dòng đầu ra nhất định. Luồng đầu vào proxy bị đóng khi phương thức close () trên proxy này được gọi. Nó có thể được sử dụng để vận hành hai luồng cùng một lúc.

Khai báo lớp học

Sau đây là khai báo cho org.apache.commons.io.input.TeeInputStream Lớp học -

public class TeeInputStream
   extends ProxyInputStream

Ví dụ về Lớp TeeInputStream

Trong ví dụ này, việc đóng TeeInputStream sẽ đóng TeeInputStream cũng như các đối tượng TeeOutputStream.

IOTester.java

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.commons.io.input.TeeInputStream;
import org.apache.commons.io.output.TeeOutputStream;
public class IOTester {
   private static final String SAMPLE = "Welcome to TutorialsPoint. Simply Easy
   Learning.";
   public static void main(String[] args) {
      try {
         usingTeeInputStream();
      }catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingTeeInputStream() throws IOException {
      TeeInputStream teeInputStream = null;
      TeeOutputStream teeOutputStream = null;
      try {
         ByteArrayInputStream inputStream = new
         ByteArrayInputStream(SAMPLE.getBytes("US-ASCII"));
         ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream();
         ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();
         teeOutputStream = new TeeOutputStream(outputStream1, outputStream2);
         teeInputStream = new TeeInputStream(inputStream, teeOutputStream, true);
         teeInputStream.read(new byte[SAMPLE.length()]);
         System.out.println("Output stream 1: " + outputStream1.toString());
         System.out.println("Output stream 2: " + outputStream2.toString());
      }catch (IOException e) {
         System.out.println(e.getMessage());
      } finally {
         //teeIn.close() closes teeIn and teeOut which in turn closes the out1 and out2.
         try {
            teeInputStream.close();
         } catch (IOException e) {
            System.out.println(e.getMessage());
         }
      }
   }
}

Đầu ra

Nó sẽ in ra kết quả sau.

Output stream 1: Welcome to TutorialsPoint. Simply Easy Learning.
Output stream 2: Welcome to TutorialsPoint. Simply Easy Learning.