国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

java - inputstream流讀到最后為什么沒(méi)有返回 -1 ?

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

問(wèn)題描述

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();

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

問(wèn)題解答

回答1:

應(yīng)該是你最后對(duì)buffer的處理導(dǎo)致剛剛好讀取完文件吧

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

一般情況下不需要重設(shè)buffer的大小

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 佛坪县| 怀集县| 明星| 枣庄市| 特克斯县| 精河县| 砚山县| 临颍县| 泰兴市| 云龙县| 兴义市| 普安县| 清镇市| 临洮县| 霸州市| 兴城市| 岫岩| 南澳县| 桐城市| 寿光市| 平安县| 华池县| 兴山县| 镶黄旗| 文昌市| 安徽省| 三门县| 南丰县| 浮梁县| 宣汉县| 麟游县| 双江| 南木林县| 桓仁| 留坝县| 合肥市| 祁阳县| 乐平市| 修文县| 高雄市| 阿巴嘎旗|