FileOutputStream newFile = new FileOutputStream(file, true);
你添加的时候是用的两个参数,第二个参数 true 表示添加,所以,输入的内容是添加在 a2.mid 中尾部的,并不是覆盖的。而且,你的输入输出流都没有关闭。输入流没关闭引起的问题还不大,但是输出流不关闭,那么就可能会有缓冲内容没有输出就结束了。也就是说,可能你输出的内容,本来就是添加在后面的,但由于没有关闭流,还没有输出就被干掉了,结果实际上没有改变 a2.mid。可能原来某次生成的 a2.mid 和 a1.mid 是一样的,结果以后就一直都是这样了(因为实际没有改变嘛)。