إنشاء مجموعة بايت باستخدام نوع البيانات الطويل؟

StackOverflow https://stackoverflow.com/questions/819775

  •  03-07-2019
  •  | 
  •  

سؤال

في معظم الأوقات عندما نقرأ دفق الملف في صفيف بايت ، سنكتب الرمز التالي:-

 Dim inputStream As New System.IO.FileStream(filePath, IO.FileMode.Open)
 Dim fileLength As Integer= CType(inputStream.Length, Integer)
 Dim input(fileLength) As Byte

 Using inputStream
     inputStream.Read(input, 0, fileLength)
 End Using

ولكن يجب علينا هنا تحويل الطول إلى نوع عدد صحيح (السطر 2 من الكود أعلاه) حيث لا يمكننا إعلان صفيف بايت باستخدام نوع البيانات الطويل (مع خيار صارم على). هذا هو ممارسة جيدة؟ ما هو العمل لهذه المشكلة؟

هل كانت مفيدة؟

المحلول

الممارسة الجيدة هي الاستخدام File.ReadAllBytes بدلا من كل شيء:

Dim input = File.ReadAllBytes(filePath)

بالمناسبة ، إذا كان ملفك سيكون هذا كبير (أكثر من 4 غيغابايت) ، لن ترغب في تحميلها جميعًا مرة واحدة في مجموعة بايت حيث ستستغرق ذاكرة الوصول العشوائي 4 جيجابايت (وفي عملية تتم إدارتها 32 بت ، لا يمكنك الحصول عليها على الإطلاق ، حتى لو لديك المزيد من ذاكرة الوصول العشوائي).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top