วัตถุประสงค์ของการสร้างบัฟเฟอร์คือการเพิ่มประสิทธิภาพการส่งและทำให้เราส่งข้อมูลได้เร็วขึ้น
บัฟเฟอร์นั้นง่ายมาก มันห่อหุ้มอาร์เรย์ภายในและใช้อาร์เรย์เพื่อจัดเก็บข้อมูลเพื่อให้วิธีการบางอย่างในการเข้าถึงอาร์เรย์
การทำงานของวิธีการเหล่านี้คือพอยน์เตอร์ไปยังอาร์เรย์ (เครื่องหมายมุม)
หลักการของบัฟเฟอร์: รับชุดข้อมูลจากแหล่งกำเนิดไปยังบัฟเฟอร์จากนั้นนำออกทีละหนึ่งจากบัฟเฟอร์และใช้ -1 เป็นเครื่องหมายสิ้นสุด
ใน BufferedReader เราได้อ่าน () และ readline () วิธีการอ่านข้อมูล
อ่าน () มีพารามิเตอร์ถ่าน [], cbuf, int ปิด, int len ค่าส่งคืนคือ -1
วิธีการ readline () คือการใช้ด้านในของมันทีละบรรทัดเช่นสตริงสตริงสตริงสตริงบัฟฟ์เดอร์ที่มีค่าคืนค่าเป็นโมฆะ;
ขั้นแรกให้กำหนดคลาสเพื่อกำหนดสองวิธีสำหรับการอ่านข้อมูลในคลาส myReader () และ myReadLine ();
คลาสสาธารณะ myBufferedReader {private filereader fr; ถ่านส่วนตัว [] บัฟ = ถ่านใหม่ [1024]; INT ส่วนตัว zz = 0; จำนวน int ส่วนตัว = 0; MyBufferedReader (filereader fr) {this.fr = fr; } public int myRead () พ่น IOException {if (count == 0) {count = fr.read (buff); ZZ = 0; } if (นับ <0) return -1; Char CH = buff [ZZ ++]; นับ--; return ch; } สตริงสาธารณะ myReadLine () พ่น IOException {StringBuilder stb = new StringBuilder (); int ch = 0; ในขณะที่ ((ch = myRead ())! =-1) {ถ้า (ch == '/r') ดำเนินการต่อ; if (ch == '/n') ส่งคืน stb.toString (); stb.append ((char) ch); } if (stb.length ()! = 0) ส่งคืน stb.toString (); คืนค่า null; } โมฆะสาธารณะ myClose () พ่น IOException {fr.close (); -ในนั้นฉันกำหนดตัวชี้ ZZ และนับตัวนับบัฟเฟอร์เพื่อบันทึกการเปลี่ยนแปลงในข้อมูลการอ่านในบัฟเฟอร์
เมื่อนับ == 0 อ่านข้อมูลลงในบัฟเฟอร์ ZZ 0 อ่านจากหมายเลขแรก
เมื่อข้อมูลน้อยกว่า 0 มันจะกลับมา -1 หลังจากอ่าน
สร้างสตริงสตริงสตริง builder ใน myReadLine () เพื่อจัดเก็บข้อมูล เมื่อ STB ==/N, บรรทัดจะถูกอ่านและค่าส่งคืนเป็นโมฆะ;
ตัวอย่างข้างต้นของ BufferedReader ที่กำหนดเองคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น