البرمجة

قراءة وتخزين النصوص من ملفات في جافا

في محاولتك لقراءة سلسلة نصية من ملف وتخزينها في مصفوفة في لغة البرمجة جافا، تواجهك بعض التحديات في تحويل القائمة إلى مصفوفة وطباعة النتيجة بشكل صحيح. لحل هذه المشكلة، يمكنك تعديل الكود الخاص بك كما يلي:

java
import java.io.FileReader; import java.io.FileNotFoundException; import java.util.LinkedList; import java.util.Scanner; public class FileToArray { public static void main(String[] args) { Scanner sc = null; try { sc = new Scanner(new FileReader(args[0])); LinkedList list = new LinkedList<>(); while (sc.hasNextLine()) { String line = sc.nextLine(); for (String word : line.split(" ")) { list.add(word); } } String[] wordsArray = list.toArray(new String[0]); // Print the array elements System.out.print("["); for (int i = 0; i < wordsArray.length; i++) { System.out.print(wordsArray[i]); if (i < wordsArray.length - 1) { System.out.print(", "); } } System.out.println("]"); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (sc != null) sc.close(); } } }

تم إجراء تغييرات على الكود الخاص بك، حيث تم استخدام حلقة while للتحقق من وجود سطر جديد في الملف، ثم قسمت السطور إلى كلمات وتمت إضافتها إلى القائمة. أخيرًا، تم تحويل القائمة إلى مصفوفة وتم طباعة النتيجة بشكل صحيح.

المزيد من المعلومات

بالطبع، سأوفر لك مزيدًا من التفاصيل حول الكود والمفاهيم المستخدمة.

أولاً، قمت باستيراد الحزم الضرورية للبرنامج. في هذه الحالة، قمت باستيراد FileReader و FileNotFoundException للتعامل مع قراءة الملف والتعامل مع الأخطاء المحتملة.

ثم أعدت ترتيب الكود ليكون أكثر فعالية. قمت باستخدام حلقة while للتحقق من وجود سطور إضافية في الملف، وذلك باستخدام hasNextLine() للتحقق من وجود المزيد من السطور.

بعد ذلك، في كل تكرار للحلقة while، قمت بقراءة السطر باستخدام sc.nextLine() وفصل الكلمات باستخدام split(" "). ثم قمت بإضافة كل كلمة إلى قائمة (list).

بعد الانتهاء من قراءة الملف، قمت بتحويل القائمة إلى مصفوفة باستخدام list.toArray(new String[0]). هنا، قمت بتمرير مصفوفة فارغة كمتغير لحجم المصفوفة الناتجة. تم استخدام حل هذا للتأكد من أن Java تقوم بإنشاء مصفوفة بحجم مناسب تلقائيًا.

أخيرًا، قمت بطباعة عناصر المصفوفة بشكل صحيح باستخدام حلقة for، وأضفت فاصلة فاصلة بين العناصر باستخدام شرط if.

بهذا الشكل، يمكنك الآن فهم الكود بشكل أفضل واستخدامه لقراءة النصوص من الملف وتخزينها في مصفوفة في Java.

زر الذهاب إلى الأعلى