JavaSoundでつまる

JavaSoundの
public AudioInputStream(InputStream stream,
AudioFormat format,
long length
のコンストラクタを勘違いしてつまりました。
このlengthとはフレーム数をわたないといけません。
もし、16bit モノラルなら、一つのフレームは2byteになります。
たぶん、16bitストレオなら、一つのフレームは4byteになります。

したがって、ファイルの場合だと、
file.length()/2 とかの値を与えないとうまくいきません。
再生はどうにかなる場合がありますが、書き出しの時に失敗することが多いみたいです。