yeah, looking at AssetManager.java, read() calls native readAssetChar(), whereas read(byte[]) calls native readAsset(). readAsset() throws the IOException if the underlying Asset.read() returns negative. readAssetChar() just returns negative if the read() fails, no throw.
Asset.h has UNCOMPRESS_DATA_MAX set to a megabyte in the Android case, which might be a clue. AFAICS UNCOMPRESS_DATA_MAX isn't referenced anywhere else in the core code though (?). i can't spend any more time digging right now. can someone from the droid team comment? i don't really want my application falling over at a future date because some asset went over a megabyte. which is quite likely. >I'm not exactly sure... I'm actually only reading the file 24 bytes at >a time, so I'm not quite sure why the IOException is thrown. I'm >never allocating a buffer for the full file. > >If I do two sequential one byte reads it's fine... but a single 2 byte >read (using read(byte[])) it throws the exception. The exception is >thrown by AssetManager.readAsset. > >On Aug 13, 2:09 pm, Jason Proctor <[email protected]> >wrote: >> why is there a 1mb file limit in this case? >> >> and is the restriction 1mb in the amount of stuff read, or in the >> size of the file? >> >> could you maybe open the file, skip a megabyte, then continue to read >> the second megabyte? >> >> >1048576 is the file limit >> >If you have bigger file split it >> >> -- >> jason.software.particle > -- jason.software.particle --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

