إنشاء مجموعة بايت باستخدام نوع البيانات الطويل؟
-
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 بت ، لا يمكنك الحصول عليها على الإطلاق ، حتى لو لديك المزيد من ذاكرة الوصول العشوائي).
لا تنتمي إلى StackOverflow