Java基礎Demo -- IO 合成器示例
阿新 • • 發佈:2018-12-24
SequenceInputStream 合成器的運用
import java.io.*; import java.util.*; /** * 自定義的列舉類 支援元素FileInputStream,體現在nextElement()方法上 * 不要暈:類內的私有資料成員支援元素String,我們主要看自定義類上的泛型是FileInputStream,以及體現到方法nextElement()上的返回型別 */ class MyEnumeration implements Enumeration<FileInputStream> { private Enumeration<String> files; public MyEnumeration(Vector<String> files){ this.files = files.elements(); } public boolean hasMoreElements(){ return files.hasMoreElements(); } public FileInputStream nextElement(){ try{ return new FileInputStream(files.nextElement()); }catch(Exception e){ return null; } } } public class SequenceInputStreamDemo { public static void main(String[] args) { int c; Vector<String> v = new Vector(); v.addElement("file1.txt"); v.addElement("file2.txt"); v.addElement("file3.txt"); MyEnumeration en = new MyEnumeration(v); try(InputStream in = new SequenceInputStream(en)){ while((c=in.read())!=-1){ System.out.print((char)c); } }catch(Exception e){} } }