久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

java - inputstream流讀到最后為什么沒有返回 -1 ?

瀏覽:145日期:2024-01-10 15:18:05

問題描述

InputStream fileSource = req.getInputStream();String tempFile = '/home/joy/桌面/tempFile';FileOutputStream tempFileOutputStream = new FileOutputStream(tempFile);byte[] bytes = new byte[10 * 1024];int i = 0;while ((i = fileSource.read(bytes, 0, bytes.length)) != -1) { System.out.println('已讀字節(jié):' + i + ', 剩余字節(jié): ' + fileSource.available()); System.out.println(new String(bytes)); tempFileOutputStream.write(bytes); tempFileOutputStream.flush(); if (fileSource.available() < bytes.length) {bytes = new byte[fileSource.available()]; }}tempFileOutputStream.close();fileSource.close();

為什么該流讀完的時候并沒有返回-1,而是返回0,導致無限循環(huán).(上傳文檔類型文件不會,字節(jié)文件就會發(fā)生這種情況)java - inputstream流讀到最后為什么沒有返回 -1 ?

問題解答

回答1:

應該是你最后對buffer的處理導致剛剛好讀取完文件吧

if (fileSource.available() < bytes.length) { bytes = new byte[fileSource.available()];}

一般情況下不需要重設buffer的大小

標簽: java
相關(guān)文章:
主站蜘蛛池模板: 开平市| 吴忠市| 买车| 阿克陶县| 通山县| 凤阳县| 徐州市| 甘孜| 焦作市| 江西省| 襄垣县| 长治县| 墨脱县| 罗甸县| 阿坝县| 云和县| 青冈县| 岢岚县| 烟台市| 独山县| 龙泉市| 蒲江县| 澳门| 滁州市| 班玛县| 宾阳县| 安达市| 沅江市| 吕梁市| 冷水江市| 石首市| 常州市| 大石桥市| 保德县| 镇江市| 正宁县| 乌兰察布市| 牡丹江市| 阿克陶县| 定陶县| 安龙县|