Java/File Input Output/SequenceInputStream

Материал из Java эксперт
Перейти к: навигация, поиск

Demonstrate sequenced input.

   <source lang="java">

import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.SequenceInputStream; import java.util.Enumeration; import java.util.Vector; class InputStreamEnumerator implements Enumeration<FileInputStream> {

 private Enumeration<String> files;
 public InputStreamEnumerator(Vector<String> files) {
   this.files = files.elements();
 }
 public boolean hasMoreElements() {
   return files.hasMoreElements();
 }
 public FileInputStream nextElement() {
   try {
     return new FileInputStream(files.nextElement().toString());
   } catch (IOException e) {
     return null;
   }
 }

} class SequenceInputStreamDemo {

 public static void main(String args[]) throws IOException {
   int c;
   Vector<String> files = new Vector<String>();
   files.addElement("c:\\autoexec.bat");
   files.addElement("c:\\config.sys");
   InputStreamEnumerator e = new InputStreamEnumerator(files);
   InputStream input = new SequenceInputStream(e);
   while ((c = input.read()) != -1) {
     System.out.print((char) c);
   }
   input.close();
 }

}

</source>
   
  
 
  



Sequence IO

   <source lang="java">

import java.io.FileInputStream; import java.io.IOException; import java.io.SequenceInputStream; public class SequenceIOApp {

 public static void main(String args[]) throws IOException {
   SequenceInputStream inStream;
   FileInputStream f1 = new FileInputStream("ByteArrayIOApp.java");
   FileInputStream f2 = new FileInputStream("FileIOApp.java");
   inStream = new SequenceInputStream(f1, f2);
   boolean eof = false;
   int byteCount = 0;
   while (!eof) {
     int c = inStream.read();
     if (c == -1)
       eof = true;
     else {
       System.out.print((char) c);
       ++byteCount;
     }
   }
   System.out.println(byteCount + " bytes were read");
   inStream.close();
   f1.close();
   f2.close();
 }

}

</source>