/*
* 練習問題21.6 p.542
* 463頁のプログラムConcatを書き直して、1度に1つのFileInputStreamオブジェクトだけを
* オープンするEnumerationの実装を使用するようにしなさい。
*/
package ch21.ex21_06;
import java.io.*;
import java.util.*;
class Concat
{
public static void main(String[] args) throws IOException
{
InputStream in; // 文字を読み込むべきストリーム
Enumeration<InputStream> files = null;
if (args.length == 0)
{
in = System.in;
}
else
{
InputStream fileIn, bufIn;
List<InputStream> inputs = new ArrayList<InputStream>(args.length);
for (String arg : args)
{
fileIn = new FileInputStream(arg);
bufIn = new BufferedInputStream(fileIn);
inputs.add(bufIn);
}
// Enumeration<InputStream> files = Collections.enumeration(inputs);
files = Collections.enumeration(inputs);
// in = new SequenceInputStream(files);
}
int ch;
while(files.hasMoreElements())
{
in = files.nextElement();
while((ch = in.read()) != -1)
{
System.out.write(ch);
}
}
System.out.flush();
}
}