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

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

C# 將數(shù)據(jù)文件讀入字節(jié)數(shù)組

C# 將數(shù)據(jù)文件讀入字節(jié)數(shù)組

C#
墨色風雨 2023-09-16 16:11:41
我正在嘗試將包含 16 位數(shù)字的大型數(shù)據(jù)文件讀取到多維數(shù)組中,但我不確定 C# 中最快的方法。我還需要它來處理 8 位數(shù)字。在 C++ 中,我使用 fread() ,它非???,并將數(shù)據(jù)讀取到“myArray[,,,,]”中,然后可以將其作為多維數(shù)組進行訪問:numberRead = fread( myArray, sizeof(short), 19531250, stream );在 C# 中,我可以使用循環(huán),但這非常慢。using (BinaryReader reader = new BinaryReader(File.OpenRead(filepath))){  for (int i = 0; i < 25; i++)    for (int j = 0; j < 25; j++)      for (int k = 0; k < 25; k++)        for (int m = 0; m < 25; m++)          for (int n = 0; n < 25; n++)          {            myArray[i, j, k, m, n] = reader.ReadInt16();          }}有沒有更快的方法將文件讀入可適應 8 位和 16 位數(shù)據(jù)的數(shù)組?
查看完整描述

1 回答

?
烙印99

TA貢獻1829條經(jīng)驗 獲得超13個贊

它很慢,因為您不斷向文件系統(tǒng)請求小塊數(shù)據(jù)。你最好先一次性將整個文件讀入內存??


using (var memStream = new MemoryStream(File.ReadAllBytes(filepath)))

using (BinaryReader reader = new BinaryReader(memStream))

{

    for (int i = 0; i < 25; i++)

        for (int j = 0; j < 25; j++)

            for (int k = 0; k < 25; k++)

                for (int m = 0; m < 25; m++)

                    for (int n = 0; n < 25; n++)

                    {

                        myArray[i, j, k, m, n] = reader.ReadInt16();

                    }

}

要讀取有符號 8 位整數(shù),請?zhí)鎿Qreader.ReadInt16()為reader.ReadSByte();


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 109 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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