اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

أهلًا بك،

يمكنك حذف نص محدد من ملف نصي بلغة الجافا من خلال البرنامج التالي وحسب الشرح في الصورة

import java.io.*; 
  
public class FileOperation 
{ 
    public static void main(String[] args) throws IOException  
    { 
        // PrintWriter object for output.txt 
        PrintWriter pw = new PrintWriter("output.txt"); 
          
        // BufferedReader object for input.txt 
        BufferedReader br1 = new BufferedReader(new FileReader("input.txt")); 
          
        String line1 = br1.readLine(); 
          
        // loop for each line of input.txt 
        while(line1 != null) 
        { 
            boolean flag = false; 
              
            // BufferedReader object for delete.txt 
            BufferedReader br2 = new BufferedReader(new FileReader("delete.txt")); 
              
            String line2 = br2.readLine(); 
              
            // loop for each line of delete.txt 
            while(line2 != null) 
            { 
                if(line1.equals(line2)) 
                { 
                    flag = true; 
                    break; 
                } 
                  
                line2 = br2.readLine(); 
            } 
              
            // if flag = false 
            // write line of input.txt to output.txt 
            if(!flag) 
                pw.println(line1); 
              
            line1 = br1.readLine(); 
              
        } 
          
        pw.flush(); 
          
        // closing resources 
        br1.close(); 
        pw.close(); 
          
        System.out.println("File operation performed successfully"); 
    } 
} 

مصدر موقع geeksforgeeks

Capture.PNG

  • 0
نشر

يمكنك استخدام الدالة replaceAll:

public String replaceAll(String regex, String replacement)

تقبل هذه الدالة تعبيراً منتظماً "regular expression(regex)" و سلسلة نصية String كوسطاء. حيث تستخدم هذه الدالة للبحث في الـ String الذي قام باستدعائها عن  Substring ما لتبديله بنص جديد. حيث أننا نضع مكان الباراميتر regex نص يمثل النص الذي نريد استبداله. ومكان الباراميتر replacement نمرر النص الذي سيحل مكانه. وكلما تم إيجاد نفس قيمة الباراميتر regex سيتم إستبدالها بقيمة الباراميتر replacement. مثال عن هذه الدالة:

public class MyClass {
    public static void main(String args[]) {
        String str = "casd bla bla bla daerve ";
        System.out.println( str.replaceAll("bla bla bla", "") );
        // :الخرج سيكون
        //casd  daerve 
    }
}

الآن لحذف سلسلة معينة من ملف باستخدام طريقة replaceAll  نتبع مايلي: أولاً: نقوم بتحميل محتويات الملف كسلسلة String. ثانياً: نقوم باستبدل الكلمة المطلوبة (أو الكلمات أو ال substring) بسلسلة فارغة باستخدام replaceAll. ثالثاً: أعد كتابة السلسلة الناتجة في الملف مرة أخرى. كالتالي:

import java.io.PrintWriter;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class StringExample {
  //string يقرأ الملف كسلسلة نصية fileToString نعرف تابع 
   public static String ReadFileAsString(String Path) throws Exception{
      Scanner in = new Scanner(new File(Path));
      StringBuffer myfile = new StringBuffer();
      String read = null;
      //myfile نبدأ الآن بقراءة الملف وتخزين محتوياته في
      while (in.hasNextLine()) {
         read = sc.nextLine();
         myfile.append(read);
      }
      return myfile.toString();
   }
   // الآن سنطبق خطوتي الحذف والكتابة فوق الملف الأصلي لتعديل محتواه
   public static void main(String args[]) throws FileNotFoundException {
      // نضع مسار الملف 
      String Path = "f.txt";
      // نمرره للدالة السابقة
      String file = ReadFileAsString(Path);
      // الحذف
      file = file.replaceAll("\\b نضع مانريد حذفه هنا \\b", "");
      // نعيد كتابة الملف من جديد بعد التعديل
      PrintWriter wr = new PrintWriter(new File(Path));
      wr.append(file);
      wr.flush();
	  // يمكننا الآن عرض محتوياته بعد التعديل كالتالي
      System.out.println(ReadFileAsString(Path));
   }
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...