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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C#中同時讀寫文件

在C#中同時讀寫文件

C#
BIG陽 2019-12-05 15:11:11
我有一個文件,其中包含我想監(jiān)視的更改以及自己添加的更改的數(shù)據(jù)。像“ Tail -f foo.txt”那樣思考?;诖司€程,看來我應(yīng)該只創(chuàng)建一個文件流,并將其同時傳遞給編寫者和閱讀者。但是,當(dāng)閱讀器到達(dá)原始文件的末尾時,看不到我自己編寫的更新。我知道這似乎是一種奇怪的情況,更多的是實(shí)驗(yàn),看能否完成。這是我嘗試的示例案例:foo.txt:abcdef        string test = "foo.txt";        System.IO.FileStream fs = new System.IO.FileStream(test, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite);        var sw = new System.IO.StreamWriter(fs);        var sr = new System.IO.StreamReader(fs);        var res = sr.ReadLine();        res = sr.ReadLine();        sw.WriteLine("g");        sw.Flush();        res = sr.ReadLine();        res = sr.ReadLine();        sw.WriteLine("h");        sw.Flush();        sw.WriteLine("i");        sw.Flush();        sw.WriteLine("j");        sw.Flush();        sw.WriteLine("k");        sw.Flush();        res = sr.ReadLine();        res = sr.ReadLine();        res = sr.ReadLine();        res = sr.ReadLine();        res = sr.ReadLine();        res = sr.ReadLine();超過“ f”后,閱讀器將返回null。
查看完整描述

3 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個贊

當(dāng)您寫入流時,文件指針將更改并移動到流的末尾。您沒有指望的是StreamReader有自己的緩沖區(qū)。它從文件中讀取1024個字節(jié),然后您將從該緩沖區(qū)中獲取結(jié)果。直到緩沖區(qū)用完,所以它必須再次從FileStream中讀取。由于文件指針位于文件末尾,因此一無所獲。

您確實(shí)確實(shí)需要單獨(dú)的FileStreams,每個FileStreams都有自己的文件指針,以使這項(xiàng)工作有希望。


查看完整回答
反對 回復(fù) 2019-12-05
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個贊

對于涉及使用同一流進(jìn)行讀寫的此問題的任何解決方案,您都不大可能滿意。如果您嘗試使用讀取文件尾部,則尤其如此StreamReader。


您想要兩個不同的文件流。StreamWriter如果愿意,寫作流可以是a 。讀取流應(yīng)為二進(jìn)制流(即使用File.OpenRead或創(chuàng)建FileStream.Create),從文件中讀取原始字節(jié),然后轉(zhuǎn)換為文本。我對這個問題的回答顯示了如何進(jìn)行的基礎(chǔ)知識。


查看完整回答
反對 回復(fù) 2019-12-05
  • 3 回答
  • 0 關(guān)注
  • 766 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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