Re: [問題] fread 轉成 StreamReader

看板C_Sharp作者 (hamster)時間17年前 (2008/05/09 21:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《MMAXo (充滿自信與信任)》之銘言: : 原始 C code : fread(pic[i, j], 1, 1, fp); : 我要轉成 C# : StreamReader sr = new StreamReader(argv); : for (int i = 0; i < 2460; i++) : { : for (int j = 0; j < 3360; j++) : { : pic[i, j] = 0; : pic[i, j] = sr.Read() + j; // <=== 這裡 : } : } : 我這樣讀進來的方式有問題嗎? thx : 補充一下...我要讀的檔案是 raw data 經過 sony_Decrypt 過的檔案 StreamReader 主要是用來讀取字串 (字元) 的,要使用二進位方式讀取可以使用 BinaryReader,不過如果每次只讀一個位元組的話就不用再透過 BinaryReader, 直接使用 Stream 讀取即可。和 fread 最接近的應該是 Stream 類別的 Read 方法: int Read(byte[] buffer, int offset, int count) buffer:儲存資料的緩衝區 offset:讀進來的資料要從 buffer[] 的哪裡開始放 count :要讀取的位元組個數 回傳 :實際讀取的位元組個數 雖然 Stream.Read 跟 fread 很像,不過只讀一位元組的話使用 Stream.ReadByte 方法 會比較方便。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.31.139.170
文章代碼(AID): #1895ZK3T (C_Sharp)
文章代碼(AID): #1895ZK3T (C_Sharp)