ตัวอย่างมีดังนี้:
Package Day0208; นำเข้า java.io.filereader; นำเข้า java.io.ioException; /** บัฟเฟอร์การอ่านแบบกำหนดเองเพื่อใช้ฟังก์ชัน bufferedreader* การวิเคราะห์:* บัฟเฟอร์คือการห่อหุ้มอาร์เรย์และให้วิธีการเพิ่มเติมในการเข้าถึงอาร์เรย์* ในความเป็นจริงวิธีการเหล่านี้ในที่สุดก็ใช้เครื่องหมายมุมของอาร์เรย์* หลักการของการบัฟเฟอร์* ที่จะได้รับข้อมูลจากแหล่งข้อมูล บัฟเฟอร์* เมื่อข้อมูลในแหล่งที่มาถูกสกัดให้ใช้ -1 เป็นเครื่องหมายสิ้นสุด */คลาสสาธารณะ MyBufferReader {Private Filereader R; MyBufferReader (filereader r) {this.r = r; } // กำหนดอาร์เรย์เป็นบัฟเฟอร์ส่วนตัวถ่าน [] buf = ถ่านใหม่ [1024]; // กำหนดตัวชี้เพื่อใช้งานองค์ประกอบของอาร์เรย์นี้ เมื่อองค์ประกอบสุดท้ายถูกดำเนินการตัวชี้ควรรีเซ็ตเป็นศูนย์ INT ส่วนตัว POS = 0; // กำหนดตัวนับเพื่อบันทึกจำนวนข้อมูลในบัฟเฟอร์ เมื่อข้อมูลลดลงเหลือ 0 ให้ดำเนินการต่อเพื่อรับข้อมูลจากแหล่งที่มาและเข้าสู่บัฟเฟอร์ จำนวน int ส่วนตัว = 0; public int myRead () พ่น IOException {// วิธีการอ่านแบบกำหนดเองถ้า (count == 0) {// หากไม่มีข้อมูลในบัฟเฟอร์ให้รับชุดข้อมูลจากแหล่งกำเนิดไปยังจำนวนบัฟเฟอร์ = r.read (buf); pos = 0; } ถ้า (นับ <0) {return -1; } char ch = buf [pos ++]; // รับอักขระหนึ่งตัวจากบัฟเฟอร์ในเวลานับ-; return ch; } สตริงสาธารณะ myReadLine () พ่น IOException {// custom readline ละเมิดกฎหมาย Stringbuilder sb = new StringBuilder (); int ch = 0; ในขณะที่ ((ch = myRead ())! =-1) {// ตราบใดที่มีข้อมูลอ่านว่า (ch == '/n') // ตัวแบ่งสาย Java หยุดอ่านและส่งคืนข้อมูลการอ่านเพื่อส่งคืน sb.toString (); ถ้า (ch == '/r') ดำเนินการต่อ; // The Newline ใต้หน้าต่างอย่าอ่านหรือแบ่งบรรทัด, ดำเนินการอ่านอักขระต่อไปนี้ sb.append ((char) ch); // ภายใต้สถานการณ์ปกติให้อ่านต่อไป} ถ้า (sb.length ()! = 0) // หากมีตัวละครในเอกสาร return null; // ถ้าเป็นเอกสารที่ว่างเปล่าให้ส่งคืนว่างเปล่า} โมฆะสาธารณะ myclose () พ่น ioexception {r.close (); // ปิดแหล่งข้อมูลการไหล}}}}จะโอเคและคุณสามารถทำการทดสอบได้
Package Day0208; นำเข้า java.io.filereader; นำเข้า java.io.ioException; คลาสสาธารณะ mydemo {โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น ioexception {filereader fw = filereader ใหม่ ("c: //demo2.txt"); MyBufferReader br = new MyBufferReader (FW); สตริง line1 = null; ในขณะที่ ((line1 = br.myreadline ())! = null) {system.out.println (line1); } // int num = 0; // ในขณะที่ ((num = br.myread ())! =-1) {// system.out.print ((char) num); //} br.myclose (); -วิธีการตรวจจับทั้งสองนั้นโอเค
บทความข้างต้นขึ้นอยู่กับวิธีการอ่านและ readline ใน bufferedreader ที่กำหนดเอง นี่คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น