最近发现Java的InputStream是一个很诡异的抽象类,如果对ZipFile.getInputStream()的返回值直接使用int read(byte[] buffer),可能会数据读入不全,而且在运行时很难发现(除非判断返回的字节数)。类似情况也可能出现在AudioTrack.write(byte[] audioData, int offsetInBytes, int sizeInBytes)方法上,写入的数据也有可能不全。操纵这些底层方法读写大块内存时必须非常小心(实际上操作起来有难度,因为在写编码或解码器时调用这类方法可能会很频繁,很难知道哪些读写操作只完成了一半)。
ZipFile.getInputStream()的read方法和AudioTrack中的write方法
最新推荐文章于 2022-07-13 10:15:13 发布
本文探讨了Java中InputStream类的一些潜在问题,特别是在使用ZipFile.getInputStream()和AudioTrack.write()方法时可能出现的数据读写不完整的情况。文章提醒开发者在处理大量数据时要格外小心。
668

被折叠的 条评论
为什么被折叠?



