這方法完全用java標準library,非常方便:
static String convertStreamToString(java.io.InputStream is) {
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
return s.hasNext() ? s.next() : "";
}
以上為原始範例,直接貼上在大部分情況就可以使用,但如果需要處理中文檔案,回文有提到部分改善方式,使用加入UTF-8的constructor,變成像這樣:
//Path→File→FileInputStream fIn,最後需要一個try/catch,非常瑣碎.....
BufferedInputStream bIn = new BufferedInputStream(fIn); //預設buffer=8192
Scanner scanner = new Scanner(bIn, "UTF-8").useDelimiter("\\A");
String content = scanner.hasNext() ? scanner.next() : "";
scanner.close();
目前存取超過8192字元文件正常,繼續測試中。