English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

طرق قراءة ملفات وكتابة ملفات في java (مثال بسيط)

كود Java

public class ReadFromFile { 
  /** 
   * قراءة الملف بالبتيات، تستخدم عادة لقراءة ملفات ثنائية مثل الصور، والأصوات، والفيديوهات وغيرها من الملفات. 
   */ 
  public static void readFileByBytes(String fileName) { 
    File file = new File(fileName); 
    InputStream في = null; 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      System.out.println("قراءة محتويات الملف بالبتيات، قراءة بتة واحدة في المرة الواحدة:"); 
      // قراءة بتة واحدة في المرة الواحدة 
      في = جديد FileInputStream(file); 
      int tempbyte; 
      while ((tempbyte = في.read()) != -1) { 
        System.out.write(tempbyte); 
      } 
      in.close(); 
    } 
      e.printStackTrace(); 
      return; 
    } 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      System.out.println("قراءة محتويات الملف بالبتيات، قراءة عدة بتات في المرة الواحدة:"); 
      // قراءة عدة بتات في المرة الواحدة 
      byte[] tempbytes = جديد byte[100]; 
      int byteread = 0; 
      في = جديد FileInputStream(fileName); 
      ReadFromFile.showAvailableBytes(in); 
      // يقرأ عدة بايتات إلى مصفوفة البايتات، byteread هو عدد البايتات المقرأة في المرة الواحدة 
      while ((byteread = in.read(tempbytes)) != -1) { 
        System.out.write(tempbytes, 0, byteread); 
      } 
    } catch (Exception e1) { 
      e1.printStackTrace(); 
    } 
      إذا (in != null) { 
        //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
          in.close(); 
        } 
        } 
      } 
    } 
  } 
  /** 
   * يقرأ الملف بالأحرف، يستخدم عادةً لقراءة ملفات نصية، وأرقام وغيرها من أنواع الملفات 
   */ 
  public static void readFileByChars(String fileName) { 
    File file = new File(fileName); 
    Reader reader = null; 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      System.out.println("يقرأ محتوى الملف بالأحرف، في المرة الواحدة يقرأ بايتًا واحدًا:"); 
      // يقرأ أحرفًا واحدة في المرة الواحدة 
      reader = new InputStreamReader(new FileInputStream(file)); 
      int tempchar; 
      while ((tempchar = reader.read()) != -1) { 
        // بالنسبة لنظام التشغيل Windows، رمز \r\n معًا يمثل سطرًا جديدًا. 
        // ولكن إذا كان هذان الرمزان معروفان بشكل منفصل، سيتم تغيير السطرين. 
        // لذلك، ي屏蔽 \r، أو ي屏蔽 \n. وإلا، سيكون هناك العديد من السطور الفارغة. 
        إذا (((char) tempchar) != '\r') { 
          System.out.print((char) tempchar); 
        } 
      } 
      reader.close(); 
    } 
      e.printStackTrace(); 
    } 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      System.out.println("يقرأ محتوى الملف بالأحرف، في المرة الواحدة يقرأ عدة بايتات:"); 
      // يقرأ عدة أحرف في المرة الواحدة 
      char[] tempchars = new char[30]; 
      int charread = 0; 
      reader = new InputStreamReader(new FileInputStream(fileName)); 
      // يقرأ عدة أحرف إلى مصفوفة الأحرف، charread هو عدد الأحرف المقرأ في المرة الواحدة 
      while ((charread = reader.read(tempchars)) != -1) { 
        // ي屏蔽 \r ولا يظهر 
        إذا ((charread == tempchars.length) 
            && (tempchars[tempchars.length - 1] != '\r')) { 
          System.out.print(tempchars); 
        } else { 
          for (int i = 0; i < charread; i++) { 
            if (tempchars[i] == '\r') { 
              continue; 
            } else { 
              System.out.print(tempchars[i]); 
            } 
          } 
        } 
      } 
    } catch (Exception e1) { 
      e1.printStackTrace(); 
    } 
      if (reader != null) { 
        //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
          reader.close(); 
        } 
        } 
      } 
    } 
  } 
  /** 
   * 以行为单位读取文件,常用于读面向行的格式化文件 
   */ 
  public static void readFileByLines(String fileName) { 
    File file = new File(fileName); 
    BufferedReader reader = null; 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      System.out.println("以行为单位读取文件内容,一次读一整行:"); 
      reader = new BufferedReader(new FileReader(file)); 
      String tempString = null; 
      int line = 1; 
      // 一次读入一行,直到读入null为文件结束 
      while ((tempString = reader.readLine()) != null) { 
        // 显示行号 
        System.out.println("line " + line + ": " + tempString); 
        line++; 
      } 
      reader.close(); 
    } 
      e.printStackTrace(); 
    } 
      if (reader != null) { 
        //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
          reader.close(); 
        } 
        } 
      } 
    } 
  } 
  /** 
   * 随机读取文件内容 
   */ 
  public static void readFileByRandomAccess(String fileName) { 
    RandomAccessFile randomFile = null; 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      System.out.println("随机读取一段文件内容:"); 
      // 打开一个随机访问文件流,按只读方式 
      randomFile = new RandomAccessFile(fileName, "r"); 
      // طول الملف، عدد البايتات 
      long fileLength = randomFile.length(); 
      // 读文件的起始位置 
      int beginIndex = (fileLength > 4) ? 4 : 0; 
      // تحريك بداية قراءة الملف إلى موقع beginIndex. 
      randomFile.seek(beginIndex); 
      byte[] bytes = new byte[10]; 
      int byteread = 0; 
      // اقرأ 10 بايت في المرة الواحدة، إذا كان محتوى الملف أقل من 10 بايت، فإنه يقرأ البايتات المتبقية. 
      // تعيين عدد البايتات المقرأه في byteread 
      while ((byteread = randomFile.read(bytes)) != -1) { 
        System.out.write(bytes, 0, byteread); 
      } 
    } 
      e.printStackTrace(); 
    } 
      if (randomFile != null) { 
        //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
          randomFile.close(); 
        } 
        } 
      } 
    } 
  } 
  /** 
   * عرض عدد البايتات المتبقية في تدفق الإدخال 
   */ 
  private static void showAvailableBytes(InputStream in) { 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      System.out.println("عدد البايتات المتاحة في تدفق الإدخال الحالي: " + in.available()); 
    } 
      e.printStackTrace(); 
    } 
  } 
  public static void main(String[] args) { 
    String fileName = "C:/temp/newTemp.txt"; 
    ReadFromFile.readFileByBytes(fileName); 
    ReadFromFile.readFileByChars(fileName); 
    ReadFromFile.readFileByLines(fileName); 
    ReadFromFile.readFileByRandomAccess(fileName); 
  } 
}

كود Java

public class AppendToFile { 
  /** 
   * طريقة A إضافة ملف: استخدام RandomAccessFile 
   */ 
  public static void appendMethodA(String fileName, String content) { 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      // افتح تدفق الوصول العشوائي للملف، بشكل قراءة وكتابة 
      RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw"); 
      // طول الملف، عدد البايتات 
      long fileLength = randomFile.length(); 
      // تحريك مؤشر كتابة الملف إلى نهاية الملف. 
      randomFile.seek(fileLength); 
      randomFile.writeBytes(content); 
      randomFile.close(); 
    } 
      e.printStackTrace(); 
    } 
  } 
  /** 
   * طريقة B إضافة ملف: استخدام FileWriter 
   */ 
  try { 
    //فتح مكتوب في ملف،ثاني معامل بناء الفئة هو صحيح يُشير إلى أننا نكتب في شكل إضافي 
      FileWriter writer = new FileWriter(fileName, true); 
      writer.write(content); 
      writer.close(); 
      catch (IOException e) { 
    } 
      e.printStackTrace(); 
    } 
  } 
  public static void main(String[] args) { 
    String fileName = "C:/temp/newTemp.txt"; 
    String content = "new append!"; 
    // إضافة إلى الملف باستخدام طريقة A 
    AppendToFile.appendMethodA(fileName, content); 
    AppendToFile.appendMethodA(fileName, "append end. \n"); 
    // عرض محتويات الملف 
    ReadFromFile.readFileByLines(fileName); 
    // إضافة إلى الملف باستخدام طريقة B 
    AppendToFile.appendMethodB(fileName, content); 
    AppendToFile.appendMethodB(fileName, "append end. \n"); 
    // عرض محتويات الملف 
    ReadFromFile.readFileByLines(fileName); 
  } 
}

هذا هو كل محتوى الطريقة التي قدمها لك المحرر لقراءة ملفات الجافا وكتابتها (مثال بسيط) لذا نرجو منكم الدعم والهتاف لتعليمات النشر~

أعجبك هذا