--- id: java-fileoutputstream title: "Java FileOutputStream" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["์ž๋ฐ” FileOutputStream"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.88 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["java", "programming", "w3schools", "io", "fileoutputstream", "byte-stream"] raw_sources: ["https://www.w3schools.com/java/java_fileoutputstream.asp"] applied_in: [] github_commit: "" --- # [[Java FileOutputStream]] ## ๐ŸŽฏ ํ•œ ์ค„ ํ†ต์ฐฐ (One-line insight) `FileOutputStream` mirrors `FileWriter`'s API surface almost exactly (`.write()`, overwrite-by-default, `true` as second constructor arg for append) โ€” the only real difference is that it writes raw bytes (`text.getBytes()`) instead of character text, which is what makes it usable for binary files where FileWriter cannot go. [S1] ## ๐Ÿง  ํ•ต์‹ฌ ๊ฐœ๋… (Core concepts) - **`FileOutputStream`** โ€” writes raw bytes; works for both text and binary data (images, PDFs, audio). [S1] - **`.write(text.getBytes())`** โ€” converts a String to bytes before writing. [S1] - **Default overwrite behavior** โ€” same as FileWriter: replaces existing file content. [S1] - **Append mode** โ€” pass `true` as the second constructor argument: `new FileOutputStream("filename.txt", true)`. [S1] - **Byte-level file copying** โ€” pairs with `FileInputStream` to copy any file type. [S1] ## ๐Ÿ“– ์„ธ๋ถ€ ๋‚ด์šฉ (Details) - Basic text write: `try (FileOutputStream output = new FileOutputStream("filename.txt")) { output.write(text.getBytes()); }`. [S1] - Binary file copy: `try (FileInputStream input = new FileInputStream("image.jpg"); FileOutputStream output = new FileOutputStream("copy.jpg")) { int b; while ((b = input.read()) != -1) { output.write(b); } }`. [S1] - Append mode: `try (FileOutputStream output = new FileOutputStream("filename.txt", true)) { output.write(text.getBytes()); }`. [S1] - Class choice guide: FileWriter (basic text), BufferedWriter (large text, line handling), FileOutputStream (binary/raw byte control). [S1] ## โš–๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & updates) ์†Œ์Šค์—์„œ ๋ชจ์ˆœ๋˜๋Š” ์ •๋ณด๋Š” ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์Œ. ## ๐Ÿ› ๏ธ ์ ์šฉ ์‚ฌ๋ก€ (Applied in summary) ํ˜„์žฌ ๋ฐœ๊ฒฌ๋œ ์‹ค์ œ ์ ์šฉ ์‚ฌ๋ก€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค โ€” FileInputStream๊ณผ ์ง์„ ์ด๋ฃฌ ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋ณต์‚ฌ๊ฐ€ ๋Œ€ํ‘œ์  ์‹ค์ „ ์‘์šฉ์ด๋‹ค. [S1] ## ๐Ÿ’ป ์ฝ”๋“œ ํŒจํ„ด (Code patterns) Append mode with FileOutputStream (Java): ```java String text = "\nAppended text!"; try (FileOutputStream output = new FileOutputStream("filename.txt", true)) { // true = append output.write(text.getBytes()); System.out.println("Successfully appended to file."); } catch (IOException e) { System.out.println("Error writing file."); } ``` ## โœ… ๊ฒ€์ฆ ์ƒํƒœ ๋ฐ ์‹ ๋ขฐ๋„ - **์ƒํƒœ:** draft - **๊ฒ€์ฆ ๋‹จ๊ณ„:** conceptual - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** B (W3Schools โ€” widely used educational reference, not a primary standards body) - **์‹ ๋ขฐ ์ ์ˆ˜:** 0.88 - **์ค‘๋ณต ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ:** ์‹ ๊ทœ ์ƒ์„ฑ (New discovery) ## ๐Ÿ”— ์ง€์‹ ๊ทธ๋ž˜ํ”„ (Knowledge Graph) - **์ƒ์œ„/๋ฃจํŠธ:** [[Java Tutorial]] - **๊ด€๋ จ ๊ฐœ๋…:** [[Java FileInputStream]], [[Java Files Write]], [[Java BufferedWriter]] - **์ฐธ์กฐ ๋งฅ๋ฝ:** ๋ฐ”์ดํŠธ ๋‹จ์œ„ ํŒŒ์ผ ์“ฐ๊ธฐ โ€” FileInputStream๊ณผ ์ง์„ ์ด๋ฃจ์–ด ํŒŒ์ผ ๋ณต์‚ฌ์— ์‚ฌ์šฉ. ## ๐Ÿ“š ์ถœ์ฒ˜ (Sources) - [S1] W3Schools โ€” Java FileOutputStream โ€” https://www.w3schools.com/java/java_fileoutputstream.asp ## ๐Ÿ“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "Java FileOutputStream" page (Astra wiki-curation, P-Reinforce v3.1 format).