0Pricing
Java Academy · บทเรียน

สตรีมแบบมีบัฟเฟอร์

เรียนรู้สตรีมแบบมีบัฟเฟอร์: BufferedInputStream และ BufferedOutputStream สำหรับการรับส่งข้อมูลไบต์อย่างมีประสิทธิภาพ

สตรีมแบบมีบัฟเฟอร์ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

บทนำ

สตรีมแบบมีบัฟเฟอร์ช่วยเพิ่มความเร็วในการรับส่งข้อมูลไฟล์ โดยรวมการอ่านหรือเขียนเล็ก ๆ หลายครั้งเป็นการดำเนินการขนาดใหญ่ขึ้น

แนวคิด BufferedInputStream

BufferedInputStreamห่อหุ้ม InputStream และอ่านกลุ่มไบต์เข้าไปในหน่วยความจำ ทำให้การอ่านเร็วขึ้นเมื่อมีการเรียกใช้เล็ก ๆ หลายครั้ง

โค้ด: BufferedInputStream

โค้ดนี้อ่านไบต์จากไฟล์โดยใช้บัฟเฟอร์ ผลลัพธ์จะแสดงค่าไบต์โดยคั่นด้วยช่องว่าง

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("data.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(p))) {
      int b;
      while ((b = bis.read()) != -1) {
        System.out.print(b + " ");
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

แนวคิด BufferedOutputStream

BufferedOutputStreamรวบรวมไบต์ไว้ในหน่วยความจำก่อนเขียนลงไฟล์ ซึ่งช่วยลดจำนวนครั้งในการเขียนลงดิสก์

โค้ด: BufferedOutputStream

โค้ดนี้เขียนไบต์ห้ารายการลงใน out.bin โดย BufferedOutputStream จะส่งข้อมูลออกเป็นชุดเพื่อประสิทธิภาพที่ดีขึ้น

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path p = java.nio.file.Paths.get("out.bin");
    try (java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(p))) {
      for (int i = 0; i < 5; i++) {
        bos.write(i); // write 5 bytes
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

โค้ด: คัดลอกด้วยสตรีมแบบมีบัฟเฟอร์

สตรีมแบบมีบัฟเฟอร์ทำให้การคัดลอกไฟล์เป็นเรื่องง่ายและมีประสิทธิภาพ ไฟล์จะถูกอ่านและเขียนโดยใช้บัฟเฟอร์ไบต์

public class Main {
  public static void main(String[] args) {
    java.nio.file.Path in = java.nio.file.Paths.get("data.bin");
    java.nio.file.Path out = java.nio.file.Paths.get("copy.bin");
    try (java.io.BufferedInputStream bis = new java.io.BufferedInputStream(java.nio.file.Files.newInputStream(in));
         java.io.BufferedOutputStream bos = new java.io.BufferedOutputStream(java.nio.file.Files.newOutputStream(out))) {
      int b;
      while ((b = bis.read()) != -1) {
        bos.write(b);
      }
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

ตรวจสอบสตรีมแบบมีบัฟเฟอร์

คำถามตรวจสอบอย่างรวดเร็ว: เหตุใดจึงใช้ BufferedInputStream หรือ BufferedOutputStream

ทบทวน

ทบทวน: สตรีมแบบมีบัฟเฟอร์ช่วยเพิ่มประสิทธิภาพด้วยการรวมการอ่านหรือเขียนเล็ก ๆ หลายครั้งเป็นการดำเนินการขนาดใหญ่ขึ้น

คำถามที่พบบ่อย

บทเรียน “สตรีมแบบมีบัฟเฟอร์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สตรีมแบบมีบัฟเฟอร์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สตรีมแบบมีบัฟเฟอร์”

เรียนรู้สตรีมแบบมีบัฟเฟอร์: BufferedInputStream และ BufferedOutputStream สำหรับการรับส่งข้อมูลไบต์อย่างมีประสิทธิภาพ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน

บทเรียน “สตรีมแบบมีบัฟเฟอร์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. java.nio.file Path/Files
  2. การอ่านและเขียนไฟล์ข้อความ
  3. สตรีมแบบมีบัฟเฟอร์
← กลับไปที่ Java Academy