0
我對Java I/O流有點困惑。我有一個情況,我的Inputstream速度非常快(就像從磁盤讀取文件),但是我的輸出流非常慢(如寫入http servlet響應輸出流)。Java inputstream比輸出流更快
會發生什麼,如果我的文件尺寸非常大,最終將我的OutputStream(管道輸送到文件的InputStream)拋出任何內存相關的異常,並關閉流?或者我的輸出流寫入方法會被阻塞,直到輸出流數據被清除?
它甚至有可能爲OutputStream的是滿了嗎?
public void pipe(InputStream is, OutputStream os) throws IOException {
int n;
byte[] buffer = new byte[1024];
while((n = is.read(buffer)) > -1) {
os.write(buffer, 0, n); // would this get blocked if outputstream is full?
}
os.close();
}
首先,這是毫不奇怪,閱讀通常比寫更快。其次,請下定決心想要問什麼。問題標題和第一段似乎提出了與第二段和代碼不同的內容。 – Tom