แบบสุ่มอ่านและเขียนไฟล์ใน Java
แพ็คเกจ java.io ให้คลาส RandomaccessFile สำหรับการสร้างและเข้าถึงไฟล์แบบสุ่ม การใช้คลาสนี้คุณสามารถข้ามไปยังตำแหน่งใดก็ได้ในไฟล์เพื่ออ่านและเขียนข้อมูล โปรแกรมสามารถแทรกข้อมูลในไฟล์สุ่มโดยไม่ทำลายข้อมูลอื่น ๆ ในไฟล์นั้น นอกจากนี้โปรแกรมยังสามารถอัปเดตหรือลบข้อมูลที่เก็บไว้ก่อนหน้านี้โดยไม่ต้องเขียนไฟล์ทั้งหมดใหม่
คลาส RandomAccessFile เป็นคลาสย่อยโดยตรงของคลาสวัตถุและมีตัวสร้างหลักสองตัวที่ใช้ในการสร้างวัตถุของ RandomAccessFile ดังแสดงในตาราง
ควรสังเกตว่าโหมดแสดงถึงสถานะการทำงานของไฟล์อ่านและเขียนแบบสุ่มที่สร้างขึ้นและค่าของมันรวมถึง:
R: หมายถึงการเปิดไฟล์ในโหมดอ่านอย่างเดียว
RW: หมายถึงการเปิดไฟล์ในลักษณะการอ่าน-เขียน
ตารางต่อไปนี้แสดงรายการวิธีการและคำอธิบายของคลาส RandowaccessFile
[ตัวอย่าง] เลียนแบบบันทึกระบบและเขียนข้อมูลไปยังจุดสิ้นสุดของไฟล์
นำเข้า java.io.*; คลาส EP10_12 {โมฆะคงที่สาธารณะหลัก (สตริง args []) พ่น IOException {ลอง {bufferedReader in = bufferedReader ใหม่ (อินพุตใหม่ reamreader (System.in)); RandomaccessFile myFile = new RandomActiveFile ("ep10_12.log", "rw"); เขียนข้อมูล myfile .close ();} catch (ioexception e) {}}}
หลังจากที่โปรแกรมทำงานแล้วไฟล์ของ EP10_12.Log จะถูกสร้างขึ้นในไดเรกทอรี
การประมวลผลการบีบอัดไฟล์ใน Java
แพ็คเกจ java.util.zip จัดเตรียมคลาสที่สามารถประมวลผลการบีบอัดและการบีบอัดของไฟล์ซึ่งสืบทอดมาจากคลาส BYTE Stream OutputSteam และ InputStream ในหมู่พวกเขา GZIPOUTPUTSTREAM และ ZIPOUTPUTSTREAM สามารถบีบอัดข้อมูลลงในรูปแบบ GZIP และ ZIP ตามลำดับและ GZIPINPPUTSTREAM และ ZIPINPUTSTREAM สามารถกู้คืนข้อมูลที่ถูกบีบอัดได้
ขั้นตอนทั่วไปสำหรับการเขียนไฟล์ไปยังไฟล์ที่ถูกบีบอัดมีดังนี้:
สร้างวัตถุคลาสบีบอัดที่เกี่ยวข้องกับไฟล์บีบอัดที่จะสร้าง
ไฟล์ที่ถูกบีบอัดมักจะมีไฟล์มากกว่าหนึ่งไฟล์
ใช้ putnextentry (รายการ zipentry) เพื่อเพิ่มรายการบีบอัดลงในไฟล์บีบอัด
เขียนเนื้อหาไฟล์ไปยังไฟล์ที่บีบอัดนี้
ใช้ closentry () เพื่อสิ้นสุดรายการการบีบอัดปัจจุบันและดำเนินการต่อด้วยรายการการบีบอัดถัดไป
ขั้นตอนทั่วไปสำหรับการอ่านไฟล์จากไฟล์ที่บีบอัดมีดังนี้:
สร้างวัตถุคลาสบีบอัดที่เกี่ยวข้องกับไฟล์บีบอัดเพื่ออ่าน
ใช้ getnextentry () เพื่อรับรายการบีบอัดถัดไป
[ตัวอย่าง] ป้อนชื่อไฟล์หลายชื่อบีบอัดไฟล์ทั้งหมดลงใน "EP10_13.ZIP" จากนั้นคลายการบีบอัดและแสดงจากไฟล์ที่บีบอัด
นำเข้า java.io.*; นำเข้า Java.util.*; นำเข้า java.util.zip.*; คลาส EP10_13 {โมฆะคงที่สาธารณะหลัก (สตริง args []) พ่น IOExcept "); // การประมวลผลไฟล์บีบอัดไฟล์ zipoutputStream out = new ZipOutputStream (ใหม่ bufferedOutputStream (a)); สำหรับ (int i = 0; i <args.length; i ++) {// การประมวลผลแต่ละไฟล์ที่ป้อนในระบบบรรทัดคำสั่ง .println ("การเขียนไฟล์"+args [i]); int b; ); ในขณะที่ (z = inout.getNextentry ())! ((x = inout.read ())! =-1) System.out.write (x);
หลังจากทำงานให้สร้างไฟล์บีบอัดของ EP10_13.ZIP ในไดเรกทอรีโปรแกรมและใช้ซอฟต์แวร์การบีบอัด (เช่น WinRAR ฯลฯ ) เพื่อเปิด ที่พรอมต์คำสั่งผลลัพธ์การรันโปรแกรมจะแสดงในรูป: