我有一个应用程序,它使用从 Socket InputStream 获取的字节数组创建多个文件。当我只保存一个文件时文件完美保存,但如果我保存一个文件然后重新实例化文件流并保存另一个文件,第一个文件被损坏,第二个文件被完美保存。我在文本编辑器中打开了这两个文件,似乎(大约...)第一个文件的前 1/5 是空格,但第二个文件已满,并且它们都具有相同的大小属性(9,128,731 字节)。以下示例是 senario 的副本,但具有相同的损坏结果:
FileOutputStream outStream;
outStream = new FileOutputStream("/mnt/sdcard/testmp3.mp3");
File file = new File("/mnt/sdcard/test.mp3");
FileInputStream inStream = new FileInputStream(file);
byte[] buffer = new byte[9128731];
inStream.read(buffer);
outStream.write(buffer, 0, buffer.length);
inStream.close();
outStream.flush();
outStream.close();
outStream = null;
outStream = new FileOutputStream("/mnt/sdcard/testmp32.mp3");
outStream.write(buffer, 0, buffer.length);
inStream.close();
outStream.flush();
outStream.close();
outStream = null;
我在常规的 java 应用程序中尝试了这个 EXACT 代码,两个文件都被保存没有问题。有谁知道为什么android会这样做?
任何帮助将不胜感激