循环读取文件,写文件部分到底有什么问题 inputstream的read返回的是读取到长度
大文件的读写到底怎么样才正确InputStream dataStream = new ByteArrayInputStream(imgOutputStream.toByteArray());
outputStream = new FileOutputStream(new File("c:\\test.jpg"));
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = dataStream.read(buffer, 0, buffer.length)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
大文件的读写到底怎么样才正确InputStream dataStream = new ByteArrayInputStream(imgOutputStream.toByteArray());
outputStream = new FileOutputStream(new File("c:\\test.jpg"));
byte[] buffer = new byte[1024];
int bytesRead = 0;
while ((bytesRead = dataStream.read(buffer, 0, buffer.length)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
while ((bytesRead = dataStream.read(buffer, 0, buffer.length)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
这段代码片段有什么问题
没什么问题啊。bytesRead 是实际读取到字节数。一般写 > 0 就可以了。大文件,要适当的做 outputStream.flush() 动作。否则内存会吃得很厉害,甚至溢出。