0

我正在使用此代码写入文件,它会抛出IndexOutOfBoundException.

InputStream is = res.openStream();
FileOutputStream fos = new FileOutputStream(file);
byte[] array = new byte[1024];
for(int i = is.read(array); i != 1; i=is.read(array)) {
        fos.write(array, 0, i);
}

我怎样才能检查还有多少字节要写?

4

1 回答 1

3

当没有可读取的内容时,该read方法返回-1而不是1。因此,您的循环中的检查必须是:

for(int i = is.read(array); i != -1; i=is.read(array))
于 2013-10-23T09:37:16.630 回答