توضح هذه المقالة كيفية تنفيذ Java لقراءة الملفات وكتابتها وضغطها من خلال الأمثلة، والتعليمة البرمجية المحددة هي كما يلي:
package com.toone.iform.action.common;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; .FileOutputStream; import java.io.FileReader; import java.io.FileWriter; java.io.IOException; import java.io.InputStream; import java.util.Enumeration; import java.util.ZipEntry; zip.ZipFile; public class TestFileIO { static String s = File.separator; يوجد ملف Welcome.java ضمن محرك الأقراص D. اقرأه الآن بالبايت: int a = 0; // int counter=0; // دفق الإدخال حاول { f11 = new FileInputStream("D:" + s + "Welcome.java"); while ((a = f11.read()) != -1) System.out.print((char) a); الإخراج هنا بالبايت. لا يمكن إخراج الأحرف الصينية بشكل طبيعي لأن الحرف الصيني الواحد يتكون من بايتين. System.out.println("/n/n--------------------------------------- -----------/n"); FileReader f12 = new FileReader("D:" + s + "Welcome.java"); while ((a = f12.read()) != - 1) System.out.print((شار) أ);// هنا هو الإخراج حسب الحرف، يمكن إخراج الأحرف الصينية بشكل طبيعي System.out.println("/n/n------------------------- -----------------------/n"); f11.إغلاق();// أغلق الملف بعد القراءة f12.إغلاق();// إغلاق الملف بعد القراءة} Catch (FileNotFoundException e) { // كتلة التقاط TODO التي تم إنشاؤها تلقائيًا e.printStackTrace(); } Catch (IOException e) { // TODO Auto-generated Catch block e.printStackTrace(); } } public static void testOutput() { // يوجد ملف Welcome.java ضمن محرك الأقراص D. اقرأه الآن بالبايت: int a = 0; new File ("D:" + s + "testFile" + s + "test1.txt")؛ // حدد ملفًا جديدًا f21، ثم حدد ما إذا كان موجودًا في هذا الدليل، وإذا لم يكن موجودًا، فقم بإنشائه. if (!f21.exists()) { f21.getParentFile().mkdirs(); حاول { f21.createNewFile() // انسخ محتويات "Welcome.java" إلى f21 FileOutputStream fos = new FileOutputStream(f21); FileInputStream fis = new FileInputStream("D:" + s + "Welcome.java");// اقرأ ملف "Welcome.java" while ((a = fis.read()) != -1) fos.write(a);// اكتب ذاكرة القراءة إلى fos، والآن يتم نسخ ملف test1.txt / / فئة الكاتب FileWriter of Welcome.java f22 = new FileWriter("D:" + s + "testFile" + s + "test2.txt"); 0; i < 65535; ويمكن أيضًا أن نرى من هنا أنه يمكن حذف العبارات الواردة في السطور 35-38 أعلاه لتحديد ما إذا كان الملف موجودًا أم لا. // اكتب سلسلة إلى الملف FileWriter f23 = new FileWriter("D:" + s + "testFile" + s + "test3.txt"); ); e.printStackTrace(); } } } public static void testBufferring() { // يوجد ملف Welcome.java ضمن محرك الأقراص D، اقرأه الآن بالبايت: int a = 0, counter = 0; ، تنفيذ كتابة فعالة // BufferedWriter f31=new BufferedWriter(newFileWriter("D"+s+"testFile"+s+"test4.txt")); BufferedWriter f31; حاول { f31 = new BufferedWriter(new FileWriter("D:" + s + "testFile" + s + "test4.txt")); for (int i = 1; i <= 100; i++) { f31 .write(String.valueOf(new Random().nextInt(100)) + " "); 10 == 0) f31.newLine(); } f31.flush();// تحديث المخزن المؤقت f31.Close(); "test4.txt")); String s32; while ((s32 = f32.readLine()) != null) System.out.println(s32); System.out.println("/n-----------" ---------------------------------------/n"); } Catch (IOException e) { // كتلة التقاط TODO التي تم إنشاؤها تلقائيًا e.printStackTrace(); } } public static void testZip() {try { File f1 = new File("D:/test.zip"); File f2 = new File("D:/testFile/testzip"); { // كتلة التقاط TODO التي تم إنشاؤها تلقائيًا e.printStackTrace(); } } // استخراج ملف zipfile المضغوط إلى الملف public static void testZipToUnzip(ZipFile zipfile, File file) { ZipEntry zentry = null; File zipout; ) { zentry = (ZipEntry) e.nextElement(); System.out.println(zentry.getName());// ما هي الملفات الموجودة ضمن ملف مضغوط؟ ولكن لماذا لا يتم الإخراج بالترتيب؟ ؟ // ضع الملف الذي تم فك ضغطه في مجلد الملف: zipout = new File(file + s + zentry.getName()); if (!zentry.isDirectory()) {try { zis = zipfile.getInputStream(zentry) ; !zipout.exists()) zipout.getParentFile().mkdirs(); fos = new FileOutputStream(zipout byte[] b = new byte[1024]; int length; while ((length = zis.read(b)) > 0) { fos.write(b, 0, length); (ZipException e1) { // كتلة التقاط TODO التي تم إنشاؤها تلقائيًا e1.printStackTrace(); e1.printStackTrace(); } } } } public static void main(String[] args) throws ZipException { // TODO Auto-generated way stub testInput(); testBufferring();