جافا: استخدام فئة الماسح الضوئي لقراءة الإدخال من ملف بدون أنابيب

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

سؤال

لدي حاليًا تطبيق برنامج حيث قرأت في الإدخال باستخدام فئة الماسح الضوئي. عدد صحيح عن طريق عدد صحيح. أقوم بذلك عن طريق أنبوذ ملف الإدخال عبر سطر الأوامر.

برنامج Java <input.txt

أحتاج إلى تجنب تنشيط الإدخال باستخدام وسيطة على سطر الأوامر لفتح الملف في برنامجي.

برنامج Java -ملف = input.txt

أو شيئا من هذا القبيل. أفهم أنه يمكنني تحليل وسيطة سطر الأوامر ، واستخراج النص "input.txt" ثم استخدام فئة مثل "BufferedReader" أو شيء مشابه لقراءة الملف.

أنا فضولي فقط إذا كان هناك بعيدا لاستخدام ملف الإدخال (بدون طابق) وما زلت أستخدم فئة الماسح الضوئي. مما يعني أنني لن أضطر إلى التغيير عبر NextInt () وغيرها من المكالمات.

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

المحلول

نظرًا لأن الحجج لا يتم إبعادها ولكن تم نقلها إلى main(String[] args) الطريقة دون أي عمل في الوسط هو الخيار الوحيد الخاص بك هو تحليل الوسيطة ، استخراج اسم الملف input.txt وافتحه كدفق ملف طبيعي.

لن أرى كيف يجب أن يستنتج أنه يجب فتح ملف وتمريره كأنبوب دون أن يكون أنبوبًا .. يمكنك الاستخدام بسهولة Scanner مع File حجة دون أن تهتم بأي شيء ..

public Scanner(File source) throws FileNotFoundException

يبني ماسح ضوئي جديد ينتج قيمًا تم مسحها ضوئيًا من الملف المحدد. يتم تحويل البايتات من الملف إلى أحرف باستخدام Charset الافتراضي للنظام الأساسي.

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