對於讀取到緩衝區的任何輸入流,有兩種方法。有人能幫助我瞭解哪種方法更好,爲什麼?在哪種情況下,我們應該使用每種方法?將輸入流讀取到緩衝區的最佳方法
- 逐行讀取並將其附加到緩衝區。
例如:
public String fileToBuffer(InputStream is, StringBuffer strBuffer) throws IOException{
StringBuffer buffer = strBuffer;
InputStreamReader isr = null;
try {
isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null) {
buffer.append(line + "\n");
}
} finally {
if (is != null) {
is.close();
}
if (isr != null) {
isr.close();
}
}
return buffer.toString();
}
- 讀高達緩衝區大小即1024個字節的字符數組。
如:
InputStreamReader isr = new InputStreamReader(is);
final int bufferSize = 1024;
char[] buffer = new char[bufferSize];
StringBuffer strBuffer = new StringBuffer();
/* read the base script into string buffer */
try {
while (true) {
int read = isr.read(buffer, 0, bufferSize);
if (read == -1) {
break;
}
strBuffer.append(buffer, 0, read);
}
} catch (IOException e) {
}
+1顯示java 7的try子句:) – Sikorski
想一想爲什麼? – EJP
您提供了一個單字節緩衝區版本作爲*改進*? –