Apache Commons IO - TeeInputStream

Proxy akışından okunan tüm baytların bir kopyasını belirli bir OutputStream'e şeffaf bir şekilde yazan bir InputStream proxy'sidir. Proxy giriş akışı, bu proxy üzerindeki close () yöntemi çağrıldığında kapatılır. Aynı anda iki akışı toplu olarak çalıştırmak için kullanılabilir.

Sınıf Beyanı

Aşağıdaki beyanı org.apache.commons.io.input.TeeInputStream Sınıf -

public class TeeInputStream
   extends ProxyInputStream

TeeInputStream Sınıfı Örneği

Bu örnekte, bir TeeInputStream'in kapatılması, TeeInputStream'in yanı sıra TeeOutputStream nesnelerini de kapatır.

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());
         }
      }
   }
}

Çıktı

Aşağıdaki sonucu yazdıracaktır.

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