Java 使用DataOutputStream将二进制数据写入文件时出现空行

Java 使用DataOutputStream将二进制数据写入文件时出现空行,java,android,file,pdf-generation,dataoutputstream,Java,Android,File,Pdf Generation,Dataoutputstream,我正在开发一个iOS和Android应用程序,我必须从服务器下载二进制数据形式的PDF文件,并将其写入磁盘。当我尝试在Android设备上用Adobe Reader打开文件时,在iOS上运行时,我收到一个无效的格式错误 Android上的相关代码如下: JSONArray bytesArray = new JSONArray(responseStrBuilder.toString()); DataOutputStream dos = new DataOutputStream(

我正在开发一个iOS和Android应用程序,我必须从服务器下载二进制数据形式的PDF文件,并将其写入磁盘。当我尝试在Android设备上用Adobe Reader打开文件时,在iOS上运行时,我收到一个无效的格式错误

Android上的相关代码如下:

JSONArray bytesArray = new JSONArray(responseStrBuilder.toString());

DataOutputStream dos = new DataOutputStream(
         new BufferedOutputStream(new FileOutputStream(file)));
for (int i = 0; i < bytesArray.length(); i++) {
    dos.writeInt(bytesArray.getInt(i));
}

dos.close();
当我在mac上将这些文件转换成.txt文件并在文本编辑器中打开它们时,内容似乎完全相同,只是安卓应用程序下载的文件有很多空行。我想知道这是否是问题所在,以及如何克服它

我还应该指出,我检查了两个平台上数组的长度、写入文件的每个项目的值等,结果完全相同

我附上了两个截图,第一个是安卓上下载的文件,第二个是iOS上的

任何帮助都将不胜感激。谢谢各位:

Android屏幕截图

iOS屏幕截图

下定决心吧。是JSON数据还是二进制数据?是二进制数据。。。在JSON数组中。我知道这没有意义,但我们不控制服务器,客户端也不会更改它。这只是一个小样本。。。。[37,80,68,70,45,49,46,51,13,37,226,227,207,211,13,10,50,32,48,32,111,98,106, ......]