Avatar ·

كيفية تحويل ملف إلى مصفوفة بايت (byte[]) في Java؟

مرحباً بالجميع! أنا مبتدئ في Java وواجهت مشكلة: أحتاج إلى قراءة ملف بالكامل والحصول على محتواه كمصفوفة بايت (byte[]). المهمة المحددة هي تحميل صورة من القرص وإرسالها عبر طلب HTTP. لقد جربت عدة طرق، لكن جميعها تبدو مرهقة أو تؤدي إلى أخطاء. على سبيل المثال، حاولت استخدام FileInputStream:
File file = new File("image.jpg");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
لكن هذا الكود أحياناً لا يقرأ الملف بالكامل، خاصة إذا كان كبيراً. كما سمعت عن Apache Commons IO، لكنني لا أريد إضافة مكتبات خارجية لمهمة بسيطة كهذه. أرجو إرشادي إلى الطريقة الصحيحة والموثوقة لقراءة ملف إلى مصفوفة بايت باستخدام Java الخالصة؟ من المهم أن يعمل الحل مع أي نوع من الملفات (ثنائية، نصية) وألا يتعطل مع الملفات الكبيرة. شكراً مسبقاً! <<>>

الطريقة الأكثر موثوقية: Files.readAllBytes()