解答ありがとうございます。
プログラム中ではwhile文でboolean型変数contを判別してループしています。
ピリオドが行頭にあれば終了という形で。

byte[] buff = new byte[1024];
boolean cont = true;

while (cont){
try{
int n = System.in.read(buff);
System.out.write(buff,0,n);
if(buff[0] == '.') cont = false;
else outfile.write(buff,0,n);
}
catch(Exception e){
System.exit(1);
}
}

この場合は配列の0〜nまでを読み込んでいるんだと思うんですが、
nが配列の範囲外を参照しているんでしょうか・・・?