第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

文件上字節(jié)流讀取如果buf不夠循環(huán)條件應(yīng)該怎么寫


課上簡單內(nèi)容指針一直從0開始不是會(huì)變成死循環(huán)?

正在回答

3 回答

int bytes = in.read(buf,0,buf.length);這個(gè)返回值,是你讀到的實(shí)際個(gè)數(shù),例如:你buf new的事1024,但是你文件中只要100個(gè),bytes就= 100;如果文件超過1024字節(jié),一次讀會(huì)返回1024,第二次讀的時(shí)候,指針從1024再開始讀,每次1024個(gè)字節(jié)讀,知道讀完,所以bytes 返回值,要么是1024,要么是最后一次讀到數(shù)據(jù),但是不足1024,返回實(shí)際值,再讀一次 就是EOF(結(jié)尾),返回-1

3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

刃殤 提問者

非常感謝!
2016-04-23 回復(fù) 有任何疑惑可以回復(fù)我~
#2

海與千巷

感謝,解決了我的疑惑
2016-09-06 回復(fù) 有任何疑惑可以回復(fù)我~

不足1024的話它循環(huán)讀取,郁悶? 你幫我看下

package?icetest;

import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.IOException;
import?java.util.Scanner;
import?java.util.concurrent.CountDownLatch;

public?class?FilesInputStream方法讀文件練習(xí)?{

????//F:\KwDownload\Lyric\洛天依-生.lrc
????
????public?static?void?printToHex(String?fileName)?throws?IOException?{
????????int?num?=?0;
????????int?count?=?0;
????????byte[]?buf?=?new?byte[8*1024];
????????
????????FileInputStream?file;
????????try?{
????????????file?=?new?FileInputStream(fileName);
????????????while?((num?=?file.read(buf))?!=?-1)?{
????????????????for?(int?i=0;?i<num;?++i)?{
????????????????????if?(++count%5?==?0)
????????????????????????System.out.println();????
????????????????????String?st?=?new?String(buf);
????????????????????
????????????????????System.out.print(st?+?"??");
????????????????}
????????????}
????????}?catch?(FileNotFoundException?e)?{
????????????//?TODO?Auto-generated?catch?block
????????????System.out.println("文件不存在!");
????????}
????????
????}
????
????/**
?????*?@param?args
?????*?@throws?IOException?
?????*?@throws?FileNotFoundException?
?????*/
????public?static?void?main(String[]?args)?throws?IOException?{
????????//?TODO?Auto-generated?method?stub
????????Scanner?in?=?new?Scanner(System.in);
????????
????????System.out.println("請輸入要讀取的文件:");
????????String?fileName?=?in.next();
????????
????????printToHex(fileName);
????}

}

我讀一個(gè)歌詞,下邊是結(jié)果

[00:03.72]作詞 : 雨貍

[00:05.84]作曲 : DELA

[00:07.60]如果某一個(gè)時(shí)間 我能愛上一片樹葉

[00:13.16]那么某一個(gè)未來 我也能愛上某個(gè)人

[00:18.60]他或讀著海子的詩篇 或者遙遠(yuǎn) 遠(yuǎn)在天邊

[00:23.84]在某一個(gè)劇情轉(zhuǎn)折點(diǎn) 帶我前往明天

[00:29.17]我曾在悲傷中流連 無法忘卻

[00:34.45]那一天現(xiàn)實(shí)與夢想無情地被撕裂

[01:22.45]色彩于我不過無物 晝與夜失去了區(qū)別

[01:27.81]卻看得見塵霾顛簸 行走著空心的枯骨

[01:33.25]終日畏懼陌生的視線 熟悉畫面 活的一切

[01:38.55]恨的情感最終也干癟 在朝霞口中奄奄

[01:43.62]誰看見我的黑夜 有無數(shù)的禿鷲在盤旋

[01:53.22]荒涼的墳場地 予我安眠

[01:59.18]無法理解 生者們慣用的語言

[02:05.33]我曾在童話中哭泣 聲嘶力竭

[02:10.54]那一天謊言摧毀了 善惡的邊界

[02:15.84]對暴虐跪獻(xiàn)上尊嚴(yán) 乞求諒解

[02:21.12]只渴望靈魂能從這空白中被赦免

[02:47.97]如果我能單純愛上一片樹葉

[02:53.13]是否就能做到再次愛上這個(gè)世界

[03:00.43]
。。。。。。。。

。。。。。。。。

。。。。。。。。

循環(huán)好幾遍

0 回復(fù) 有任何疑惑可以回復(fù)我~

int bytes = in.read(buf,0,buf.length) 【方法原貌:read(byte[] b, int off, int len)】?

題主可能不小心把off=0當(dāng)作是讀取的文件in的偏移量了,其實(shí)仔細(xì)看下off=0是字節(jié)數(shù)組buf的偏移量,他表示的是字節(jié)數(shù)組從buf[0]開始存儲(chǔ)in讀出來的字節(jié)

所以當(dāng)文件大于指定的字節(jié)數(shù)組大?。ㄗx取的文件比定義的buf空間還大)的時(shí)候,他會(huì)循環(huán)重新從buf[0]開始重頭存儲(chǔ)in讀出來的字節(jié)(所以視屏中每read完一次,就處理讀取完的數(shù)據(jù)buf),直到返回EOF(結(jié)尾)-1為止

1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

文件上字節(jié)流讀取如果buf不夠循環(huán)條件應(yīng)該怎么寫

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)