PrintStream และ Printwriter API นั้นเกือบจะเหมือนกันทั้งคู่สามารถส่งออกข้อมูลรูปแบบต่าง ๆ และวิธีการก่อสร้างเกือบจะเหมือนกัน
PrintWriter มีพารามิเตอร์ที่ยอมรับได้เพิ่มเติม
การเปรียบเทียบ API:
แล้วอะไรคือความแตกต่างระหว่างพวกเขา? จาก StackFlow
ความหมายหลักคือฟังก์ชั่นของสองคลาสนั้นเหมือนกันและผู้พิมพ์ที่สามารถใช้งาน PrintStream ได้และฟังก์ชั่นของ PrintWriter นั้นมีประสิทธิภาพมากขึ้น อย่างไรก็ตามเนื่องจาก PrintWriter ปรากฏค่อนข้างช้าระบบก่อนหน้านี้ใช้ printstream เพื่อนำไปใช้ดังนั้น PrintStream จึงไม่ถูกทอดทิ้งเพื่อความเข้ากันได้
ความแตกต่างที่ใหญ่ที่สุดระหว่างสองคลาสคือ PrintStream ใช้รูปแบบการเข้ารหัสเริ่มต้นของระบบเมื่ออักขระที่ส่งออกและการแปลงอักขระเป็นไบต์ สิ่งนี้จะทำให้เกิดปัญหาเมื่อข้อมูลถูกส่งไปยังแพลตฟอร์มอื่นและถอดรหัสแพลตฟอร์มอื่นโดยใช้รูปแบบการเข้ารหัสอื่นและมีปัจจัยที่ไม่สามารถควบคุมได้ PrintWriter สามารถระบุได้โดยโปรแกรมเมอร์เมื่อผ่านในนักเขียนและรูปแบบการเข้ารหัสเมื่อแปลงอักขระเป็นไบต์จะดีขึ้น
โปรแกรมต่อไปนี้แสดงให้เห็นว่าวัตถุทั้งสอง printstream และ printwriter ทำอย่างไรเมื่อประมวลผลวัตถุประสงค์ผลลัพธ์เดียวกัน โปรแกรมจะแสดงสี่อักขระ "ภาษาจีนที่เรียบง่าย" บนหน้าจอ:
StreamWriterDemo.java แพ็คเกจ OnlyFun.caterpillar; นำเข้า java.io.*; คลาสสาธารณะ StreamWriterDemo {โมฆะคงที่สาธารณะหลัก (String [] args) {ลอง {byte [] sim = {byte) 0xbc, (byte) 0xf2 (ไบต์) 0xd0, // ปานกลาง (ไบต์) 0xce, (ไบต์) 0xc4}; // text InputStreamReader inputStreamReader = new InputStreamReader (New ByteArrayInputStream (SYMPUTSTREAMWRITER printstream (system.out, true, "gb2312"); int in; ในขณะที่ (ใน (ใน = inputstreamreader.read ())! = -1) {printwriter.println ((ถ่าน) ใน); printstream.println ((char) in);} inputstreamreader.close (); printwriter.close (); printstream.close ();} catch (arrayindexoutofboundsexception e) {E.PrintStackTrace ();}}}สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับความแตกต่างระหว่าง PrintStream และ Printwriter และฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!