1. قراءة محتويات الملف بالبايت
فئة عامة ReadFromFile {public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("اقرأ محتوى الملف بالبايت، كلمة واحدة في كل مرة القسم: ");// قراءة بايت واحد في كل مرة in = new FileInputStream(file);int tempbyte;while ((tempbyte = in.read()) != -1) {System.out.write(tempbyte);}in.إغلاق();} قبض على (IOException e) {e.printStackTrace();return;}حاول {System.out.println("قراءة الملف بالبايت المحتوى، قراءة متعددة" البايتات في المرة الواحدة: ");// قراءة عدة بايتات في المرة الواحدة byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);// قراءة بايتات متعددة في صفيف البايت، byteread هو عدد البايتات المقروءة في وقت واحد while ((byteread = in.read(tempbytes)) != - 1) { System.out.write(tempbytes, 0, byteread);}} التقاط (استثناء e1) {e1.printStackTrace();} أخيرًا {if (in != null) {جرب {in.Close();} قبض (IOException e1) {}}}}
2. قراءة محتوى الملف حسب الحرف
public static void readFileByChars(String fileName) {File file = new File(fileName);Reader Reader = null;try {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();} Catch (Exception e) {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 ولا تعرض if ((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 (استثناء e1) {e1.printStackTrace();} أخيرًا {if (reader != null) {try {reader. Close();} Catch (IOException e1) {}}}}
3. اقرأ محتويات الملف سطراً سطراً
public static void readFileByLines(String fileName) {File file = new File(fileName);BufferedReader Reader = null;try {System.out.println("اقرأ محتوى الملف في وحدات السطر، واقرأ سطرًا كاملاً في المرة الواحدة:") ;reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;// اقرأ سطرًا واحدًا في كل مرة حتى تتم قراءة القيمة الخالية كنهاية الملف while ((tempString = Reader.readLine()) != null) {// عرض رقم السطر System.out.println("line " + line + ": " + tempString);line++;}reader.إغلاق();} Catch (IOException e) {e.printStackTrace();} أخيرًا {if (reader != null) {try {reader. Close();} Catch (IOException e1) {}}}}
4. قراءة محتويات الملف بشكل عشوائي
public static void readFileByRandomAccess(String fileName) {RandomAccessFile RandomFile = null;try {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 بايت، فاقرأ البايتات المتبقية. // تعيين عدد البايتات المقروءة في المرة الواحدة إلى bytereadwhile ((byteread = RandomFile.read(bytes)) != -1) {System.out.write(bytes, 0, byteread);}} Catch (IOException e) {e.printStackTrace();} أخيرًا {if (randomFile != null) {حاول {randomFile. Close();} Catch (IOException e1) {}}}} فراغ ثابت خاص showAvailableBytes(InputStream in) {try {System.out.println("عدد البايتات في دفق إدخال البايت الحالي هو:" + in.available());} Catch (IOException e) {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);}}
5. إلحاق المحتوى بنهاية الملف
public class AppendToFile {public static void appendMethodA(String fileName, String content) {try {// افتح دفق ملف وصول عشوائي، وقراءة وكتابة RandomAccessFile RandomFile = new RandomAccessFile(fileName, "rw");// طول الملف، عدد الكلمات من الأقسام long fileLength = RandomFile. length();// حرك مؤشر ملف الكتابة إلى نهاية الملف. RandomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.إغلاق();} Catch (IOException e) {e.printStackTrace();}} appendMethodB العام الفارغ الثابت (String fileName, String content) {try {/ /فتح كاتب ملف. المعلمة الثانية الصحيحة في المنشئ تعني كتابة الملف في نموذج الإلحاق. صحيح)؛writer.write(content);writer.إغلاق();} Catch (IOException e) {e.printStackTrace();}} public static void main(String[] args) {String fileName = "C:/temp /newTemp.txt";String content = "new append!";// إلحاق الملف وفقًا للطريقة AAppendToFile.appendMethodA(fileName, content);AppendToFile.appendMethodA(fileName, "append end. /n");// عرض محتوى الملف ReadFromFile.readFileByLines(fileName);// إلحاق الملف وفقًا للطريقة BAppendToFile.appendMethodB(fileName, content);AppendToFile. appendMethodB(اسم الملف، "إلحاق النهاية. /n");// عرض محتوى الملف ReadFromFile.readFileByLines(fileName);}}