สตรีม ( 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();
}