you can read assets using 'int read()' method, try:
AssetManager mgr = getAssets();
try {
InputStream is = mgr.open("test.txt");
Log.d(TAG, "onCreate 'is': " + is);
Log.d(TAG, "onCreate note 'is' is android.content.res.AssetManager$AssetInputStream");
int c;
while ((c = is.read()) != -1) {
Log.d(TAG, "onCreate " + (char) c);
}
} catch (IOException e) {
e.printStackTrace();
}
and the output (for a file assets/test.txt which contains bytes "qwertyuiop" is:
D/Test ( 872): onCreate 'is': android.content.res.AssetManager$AssetInputStream
D/Test ( 872): onCreate note 'is' is android.content.res.AssetManager$AssetInputStream
D/Test ( 872): onCreate q
D/Test ( 872): onCreate w
D/Test ( 872): onCreate e
D/Test ( 872): onCreate r
D/Test ( 872): onCreate t
D/Test ( 872): onCreate y
D/Test ( 872): onCreate u
D/Test ( 872): onCreate i
D/Test ( 872): onCreate o
D/Test ( 872): onCreate p
but as you did not provide the Uri you are using to create your AssetInputStream i cannot reproduce your exact error.