สตรีม ( InputStream
และOutputStream
) ถ่ายโอนข้อมูลไบนารี หากคุณต้องการที่จะเขียนสตริงกระแสก่อนอื่นคุณต้องแปลงเป็นไบต์หรือในคำอื่น ๆ ที่เข้ารหัสมัน คุณสามารถทำได้ด้วยตนเอง (ตามที่คุณแนะนำ) โดยใช้String.getBytes(Charset)
วิธีการ แต่คุณควรหลีกเลี่ยงString.getBytes()
วิธีนี้เนื่องจากใช้การเข้ารหัสเริ่มต้นของ JVM ซึ่งไม่สามารถคาดการณ์ได้อย่างน่าเชื่อถือในแบบพกพา
อย่างไรก็ตามวิธีปกติในการเขียนข้อมูลตัวละครลงในสตรีมนั้นคือการใส่คำสั่งลงใน a Writer
(บ่อยครั้งPrintWriter
) ที่จะทำการแปลงให้คุณเมื่อคุณเรียกใช้เมธอดwrite(String)
(หรือprint(String)
) เสื้อคลุมที่สอดคล้องกันสำหรับ InputStreams เป็นผู้อ่าน
PrintStream
เป็นการOutputStream
ใช้งานพิเศษในแง่ที่มันยังมีวิธีการเข้ารหัสสตริงโดยอัตโนมัติ (มันใช้นักเขียนภายใน) แต่มันยังคงเป็นกระแส คุณสามารถปิดสตรีมของคุณกับนักเขียนได้อย่างปลอดภัยไม่ว่าจะเป็นการPrintStream
สตรีมแบบอื่น ๆ ไม่มีอันตรายจากการเข้ารหัสสองครั้ง
ตัวอย่างของ PrintWriter พร้อม OutputStream:
try (PrintWriter p = new PrintWriter(new FileOutputStream("output-text.txt", true))) {
p.println("Hello");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}