※ 引述《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