์ํ์ฝ๋ฉ JAVA1
- 4. ์๋ฐ ๋ฌธ์ ๋ณด๋ ๋ฒ - ์ธ์คํด์ค -
- 5. ์๋ฐ ๋ฌธ์ ๋ณด๋ ๋ฒ - ์์ -
4. ์๋ฐ ๋ฌธ์ ๋ณด๋ ๋ฒ - ์ธ์คํด์ค
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter; // PrintWriter๋ java.io์ ์ํด์๋ค.
public class InstanceApp {
public static void main(String[] args) throws IOException {
PrintWriter p1 = new PrintWriter("result1.txt"); // result1.txt ํ์ผ์ ๋ง๋ค๊ณ ์์ Hello 1์ ๋ฃ๊ณ ์ข
๋ฃ
p1.write("Hello 1");
p1.close();
PrintWriter p2 = new PrintWriter("result2.txt"); // result2.txt ํ์ผ์ ๋ง๋ค๊ณ ์์ Hello 2์ ๋ฃ๊ณ ์ข
๋ฃ
p2.write("Hello 2");
p2.close();
}
}
์ธ์คํด์ค๋ฅผ ์๊ธฐ์ํด PrintWriter๋ผ๋ ํด๋์ค๋ฅผ ์ฌ์ฉํด ๋ณด์๋ค.
ํด๋น ์ฝ๋๋ result1.txt, result2.txt ํ์ผ์ ์์ฑํด ์ค ๋ค์์ "Hello 1", "Hello 2"๋ผ๋ ๋ด์ฉ์ ๊ฐ ๋ฉ๋ชจ์ฅ์์ ๋ฃ์ด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค.
๊ธฐ์กด์ ์ฐ๋ฆฌ๊ฐ ํด๋์ค๋ฅผ ํ ๋ ๋ฐฐ์ ๋ Math์๋ ๋ฌ๋ฆฌ PrintWriter๋ java.io๋ผ๋ ํจํค์ง๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ค.
๋ํ PrintWriter(String Filename) ์์ new ๋ผ๋ ๊ฒ์ด ๋ถ์ด์๋ ๊ฒ์ ํ์ธํ ์ ์๋๋ฐ ์ด๋ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค.
์คํํ ๋ค์ ๋ค๋น๊ฒ์ดํฐ์ refresh๋ฒํผ์ ๋๋ฌ์คฌ์๋ txtํ์ผ์ด ์๋กญ๊ฒ ์์ฑ๋์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์ผ๋ฉฐ ๋ด์ฉ์ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ ๋ ฅํ๋ ๋ด์ฉ์ด ๋์ค๋๊ฒ์ ํ์ธํ ์ ์์๋ค.
// ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ ๋
PrintWriter p1 = new PrintWriter("result1.txt");
p1.write("Hello 1");
p1.close();
PrintWriter p2 = new PrintWriter("result2.txt");
p1.write("Hello 2");
p1.close();
// ํด๋์คํํ๋ก ๊ฐ์ ๋ช
๋ น์ ๋ด๋ฆด ๋
// (์ฐธ๊ณ ๋ก ํด๋น ๋ช
๋ น์ ์ค์ ๋ก ์๋๋๋ ๊ฒ์ด ์๋)
PrintWrter.write("result1.txt", "Hello 1");
PrintWrter.write("result2.txt", "Hello 2");
PrintWrter.write("result3.txt", "Hello 3");
PrintWrter.write("result4.txt", "Hello 4");
PrintWrter.write("result5.txt", "Hello 5");
PrintWrter.write("result6.txt", "Hello 6");
PrintWrter.write("result7.txt", "Hello 7");
PrintWrter.write("result8.txt", "Hello 8");
PrintWrter.write("result9.txt", "Hello 9");
PrintWrter.write("result10.txt", "Hello 10");
๊ทธ๋ ๋ค๋ฉด ์ด๋ฒ์๋ ์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ธ์ง์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.
ํด๋น์ฝ๋๋ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์๋์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํด๋์ค ๊ทธ๋๋ก ์ฌ์ฉํ์๋์ ๊ฐ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด ๋ณธ ๊ฒ์ด๋ค.
์ธ์คํด์ค๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด p1์ด๋ผ๊ณ ํ๋๊ฒ์ result1.txt์ ๊ดํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๊ธฐ ๋๋ฌธ์ ๋์ค์ ํ์ผ์์ ๋ด์ฉ์ ๋ฃ๊ธฐ ์ํด write๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ์๋ ๋งค๋ฒ ํ์ผ๋ช ์ ์ฐ๋๊ฒ์ด ์๋ result1.txt์ ์ ๋ณด๋ฅผ ๋ด์ ๋ณ์ p1๊ณผ ํจ๊ป ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ฝ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํด๋์ค๋ง ์ฌ์ฉํ๊ฒ ๋๋ค๋ฉด ์ ์์์ ๋ช ๋ น์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ์ข์๋ณด์ผ์ง๋ ๋ชฐ๋ผ๋ ์ ๋ ฅํด์ผํ๋ ๊ฐ๋ค์ด ๋ง์์ง์๋ก ๋งค๋ฒ ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๋ ฅํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ฒ๊ฑฐ๋ก์ธ์ ์๋ค.
์ฆ, ํด๋์ค๋ ์ผํ์ฑ์ ๋๊ธฐ ๋๋ฌธ์ ๋จ์ํ ๋ช ๋ น์ ์ฃผ๋ก ์ฌ์ฉ๋๊ณ ์ธ์คํด์ค๋ ํ์ผ์ ์์ ํ๊ฑฐ๋ ๊ฐ์ ํ์ผ์ ์ฌ๋ฌ๋ฒ ๋ถ๋ฌ๋ด์ผ ํ ๋ ์ฌ์ฉํ๋ฉด ์ฉ์ดํ๋ค๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
๋ํ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ํด๋์ค์ ๊ทธ๋ ์ง ์์ ํด๋์ค๋ฅผ ๊ตฌ๋ณํ๋ ๋ฐฉ๋ฒ์ Constructor(์์ฑ์)๊ฐ ์๋์ง ํ์ธํด๋ณด๋ฉด ๋๋ค.
ํด๋์ค๋ฅผ ์ฌ์ฉํ ๋ ๋ง๋ ์ฌ๋์ด ํด๋์ค๋ฅผ ์ธ์คํด์ค๋ก์ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ์์ ์ํฉ์ฒ๋ผ Constructor(์์ฑ์)๋ผ๋ ๊ฒ์ ๊ฐ์ง๊ณ ์๋ค.
5. ์๋ฐ ๋ฌธ์ ๋ณด๋ ๋ฒ - ์์
ํด๋น ํ๋ฉด์ PrintWriter๋ผ๊ณ ํ๋ ํด๋์ค์ ์ฌ์ฉ ์ค๋ช ์ ์ด๋ค.
์๋๋ฅผ ๋ณด๋ฉด ์ด๋ฌํ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ ์ด๊ฒ์ PrintWriter๋ ๋ถ๋ชจ์ธ Writer์๊ฒ ์์๋ฐ์๋ค๋ ์๋ฏธ์ด๋ฉฐ, ๋ํ Writer๋ Object๋ผ๊ณ ํ๋ ๋ถ๋ชจ์๊ฒ ์์ ๋ฐ์๋ค๋ ์๋ฏธ์ด๋ค.
๋ฌด์จ ๋ป์ด๋๋ฉด ์ฐ๋ฆฌ๊ฐ ์ด๋ ํ ๊ธฐ๋ฅ์ ๋ง๋ค ๋ ์ฒ์๋ถํฐ ๋๊น์ง ๋ง๋๋ ๊ฒ์ ์ด๋ ต๊ธฐ ๋๋ฌธ์ PirntWriter ํด๋์ค๋ฅผ ๋ง๋ ์ฌ๋์ด ์ด๋ฏธ ์๋ Writer๋ผ๋ ํด๋์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ์๋, ๋ณ์๋ค์ ๊ทธ๋๋ก ๋ฌผ๋ ค๋ฐ์ผ๋ฉด์ ๊ฑฐ๊ธฐ์ ๋ด๊ฐ ์ํ๋ ๋ฉ์๋๋ ๋ณ์๋ฅผ ์ถ๊ฐ ์ํจ๊ฒ PrintWriter๊ฐ ๋๋ ๊ฒ์ด๊ณ ๋ง์ฐฌ๊ฐ์ง๋ก Writer๋ฅผ ๋ง๋ ์ฌ๋์ด Object ํด๋์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ์๋, ๋ณ์๋ค์ ๋ฌผ๋ ค๋ฐ๊ณ ๊ฑฐ๊ธฐ์ ์ํ๋ ๋ฉ์๋๋ ๋ณ์๋ฅผ ์ถ๊ฐ ์์ผ์ Writer๋ฅผ ๋ง๋ค๊ฒ ๋ ๊ฒ์ด๋ค.
์ด๋ฒ์๋ ์ดํด๋ฆฝ์ค๋ฅผ ํตํด์ PrintWriter๊ฐ ์ด๋ ํ ์์๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ํ์ธํด ๋ณด๋ ค๊ณ ํ๋ค.
๋ฐฉ๋ฒ์ PrintWriter๋ฅผ ํด๋ฆญํ ํ Open Type Hierarchy๋ฅผ ๋๋ฅด๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด PrintWriter๊ฐ ๊ฐ์ง๊ณ ์๋ ์์๊ด๊ณ๋ค์ ๋ชจ๋ ํ์ธํ ์ ์๋๋ฐ Writer์๊ฒ ์์๋ฐ๊ณ Writer๋ Object์๊ฒ ์์ ๋ฐ์๋จ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์๋ฅผ ๋ค์๋ฉด Object๋ผ๋ ํด๋์ค ์์๋ toString()์ด๋ผ๋ ๋ฉ์๋๊ฐ ์๋๋ฐ Writer๋ PrintWriter์๋ toString()์ด๋ผ๋ ๊ฒ์ ์ฐพ์๋ณผ ์ ์๋ค.
ํ์ง๋ง Object์๊ฒ ์์๋ฐ์๊ธฐ ๋๋ฌธ์ Writer๋ PrintWriter๊ฐ toString()์ ์ฌ์ฉํ์ฌ๋ ์๋ฌ๊ฐ ๋ฐ์๋์ง ์๋๋ค.
Object๋ ์๋ฐ์ ๊ธฐ๋ณธ์ ์ธ ํด๋์ค๋ก ๋ชจ๋ ํด๋์ค๋ Object๋ฅผ ์์๋ฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๊ตฐ๊ฐ๊ฐ Object๊ฐ ๊ฐ์ง๊ณ ์๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ผ๋ฉด์ Writer๋ผ๋ ์๋ก์ด ๋ฉ์๋์ ๋ณ์๋ฅผ ์ถ๊ฐํด ์๋ก์ด ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด Object๋ฅผ ์์ํด์ผํ๋ ๋ฐ ์ด๋ฅผ extends๋ผ๊ณ ํ๋ค.
๋ ๋ง์ฐฌ๊ฐ์ง๋ก PrintWriter๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ถ์ ์ฌ๋์ด Writer์ ํน์ง์ ๊ฐ์ง ๊ฒ์ ํฌ๋งํ๋ค๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก ์์์ ํ๋ฉด ๋๋ฉฐ ๊ด๊ณ๋ ์์ ๊ทธ๋ฆผ์ฒ๋ผ ํ์ฑํ๊ฒ ๋๋ค.
๋ํ PrintWriter ํด๋์ค๋ฅผ ๋ง๋ ์ฌ๋์ด Writer๊ฐ ๊ฐ์ง๊ณ ์๋ write()๋ผ๋ ๋ฉ์๋๊ฐ ๋ง์์ ๋ค์ง ์์์ writer()์ ํน์ง์ ๋ณ๊ฒฝํด์ ํด๋์ค๋ฅผ ์์ฑํ์ ๋ PrintWriter๋ฅผ ์ฌ์ฉํ๋ ์์ ์์ ๋ด๊ฐ ์ฐ๊ฒ๋ write()๋ PinrtWriter์ write๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ฐ๋ฆฌ๋ ์ด๋ ๊ฒ ์์๋ฐ์ ํด๋์ค์ ๋ฉ์๋์ ํน์ง์ ๋ฐ๊ฟ ๋ฎ์ด์ฐ๊ธฐํ ๊ฒ์ overrideํ๋ค๊ณ ํ๋ค.
'๊ฐ์ธ๊ณต๋ถ > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ํ์ฝ๋ฉ] JAVA1 - 14. ๋์ ์ฑ ๋ง๋ค๊ธฐ 2 (1) | 2022.09.18 |
---|---|
[์ํ์ฝ๋ฉ] JAVA1 - 14. ๋์ ์ฑ ๋ง๋ค๊ธฐ 1 (0) | 2022.09.18 |
[์ํ์ฝ๋ฉ] JAVA1 - 13. ์๋ฐ ๋ฌธ์ ๋ณด๋ ๋ฒ 1 (0) | 2022.09.16 |
[์ํ์ฝ๋ฉ] JAVA1 - 12. ์ง์ ์ปดํ์ผํ๊ณ ์คํํ๊ธฐ2 (0) | 2022.09.15 |
[์ํ์ฝ๋ฉ] JAVA1 - 12. ์ง์ ์ปดํ์ผํ๊ณ ์คํํ๊ธฐ1 (0) | 2022.09.15 |
๋๊ธ