1byteづつ読んで、1byteづつ書き込んでるからとかじゃねーの
バッファサイズ指定して読み込んで、書き込みも最後に一気にやるように修正汁
(read() じゃなくて read(byte[] b) のほうを使う)