"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية قراءة محتوى URL في سلسلة باستخدام Java؟

كيفية قراءة محتوى URL في سلسلة باستخدام Java؟

تم النشر بتاريخ 2024-12-22
تصفح:985

How to Read URL Content into a String with Java?

قراءة محتوى عنوان URL إلى سلسلة باستخدام Java

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

String content = "http://www.google.com".toURL().getText();
String content = "http://www.google.com".toURL().getText();
ومع ذلك، العثور على يمكن أن يكون التنفيذ المكافئ في Java أكثر صعوبة. في حين أن Java توفر خيارات متعددة لهذه المهمة، فإن الكثير منها يتضمن تخزينًا مؤقتًا معقدًا وبنيات حلقية.

نهج مبسط

لحسن الحظ، منذ الطلب الأولي لحل موجز، قدمت Java أسلوبًا أكثر وضوحًا:

String out = new Scanner(new URL("http://www.google.com").openStream(), "UTF-8").useDelimiter("\\A").next();
String content = "http://www.google.com".toURL().getText();
يستخدم هذا السطر فئة Scanner لقراءة الدفق الذي تم الحصول عليه من عنوان URL، مع التعامل مع الدفق بأكمله كسلسلة واحدة.

التنفيذ الموسع إذا رغبت في ذلك، يمكن إنشاء تنفيذ أكثر اكتمالا على النحو التالي:

ثابت عام سلسلة readStringFromURL(String requestURL) تطرح IOException { حاول (Scanner scaner = new Scanner(new URL(requestURL).openStream(), StandardCharsets.UTF_8.toString())) { scan.useDelimiter("\\A"); إرجاع الماسح الضوئي.hasNext() ؟ scan.next() : ""; }

public static String readStringFromURL(String requestURL) throws IOException {
    try (Scanner scanner = new Scanner(new URL(requestURL).openStream(),
            StandardCharsets.UTF_8.toString())) {
        scanner.useDelimiter("\\A");
        return scanner.hasNext() ? scanner.next() : "";
    }
}
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3