๐คข try-finally ์ฌ์ฉ
public String fileRead1(String file)throws IOException {
BufferedReader br = null;
try{
br = new BufferedReader(new FileReader(file));
return br.readLine();
} catch(Exception e) {
e.printStackTrace();
}finally{
br.close();
}
return file;
}
์์ธ๋ฅผ ์ก๋๋ฐ ์ฌ๋ฌ์ค์ ์ฝ๋๊ฐ ์์ฑ๋์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ์คํ ํธ๋ ์ด์ค์ ์ถ์ ์ด ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
์ด ๋ฐฉ๋ฒ์ ๋์์ ์ try-with-resource ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
๐คข try-with-resource
public String fileRead2(String file)throws IOException {
try(BufferedReader br = new BufferedReader(new FileReader(file))) {
return br.readLine();
}
}
์ด ๋ฐฉ๋ฒ์ ์์ ๋ฐฉ๋ฒ ๋ณด๋ค ์คํ ํธ๋ ์ด์ค์ ์ถ์ ์ด ์ฉ์ดํด์ง๋ฉฐ ๊ฐ๊ฒฐํ ์ฝ๋๋ก ํํ๋๊ณ ์๋์ผ๋ก ์์์ ๋ฐ๋ฉํ ์ ์์ด ์ด๋ฐฉ๋ฒ์ ๊ถ์ฅํ๋ค.
ํ์ง๋ง Autocloseable ์ธํฐํ์ด์ค๊ฐ ๊ตฌํ๋ ๊ฒ์ ์ฌ์ฉํด์ผ ๊ฐ๋ฅํ ๋ฌธ๋ฒ์ด๋ฏ๋ก Autocloseable๊ฐ ๊ตฌํ๋์ด ์๋ ํ์ธํ๊ณ ์ฌ์ฉํ์.
'Book > Effective Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ITEM 13] clone ์ฌ์ ์๋ ์ฃผ์ํด์ ์งํํด๋ผ (0) | 2022.07.13 |
---|---|
[ITEM 12] toString์ ํญ์ ์ฌ์ ์ํ๋ผ (0) | 2022.07.13 |
[ITEM 11] equals๋ฅผ ์ฌ์ ์ํ๋ ค๊ฑฐ๋ hashCode๋ ์ฌ์ ์ํ๋ผ (0) | 2022.07.10 |
[ITEM 10] equals๋ ์ผ๋ฐ ๊ท์ฝ์ ์ง์ผ ์ฌ์ ์ํ๋ผ (0) | 2022.07.10 |
[Book] ITEM 8) finalizer ์ cleaner๋ ํผํ๋ผ (0) | 2022.03.07 |
[Book] ITEM 7) ๋์ด์ ์ฐ์ง ์๋ ๊ฐ์ฒด ๋ ํผ๋ฐ์ค๋ ์์ ์ (0) | 2022.03.04 |
[Book] ITEM 6) ๋ถํ์ํ ๊ฐ์ฒด๋ ๋ง๋ค์ง ๋ง์ (0) | 2022.03.03 |
[Book] ITEM 5) ๋ฆฌ์์ค๋ฅผ ์ฎ์ ๋๋ ์์กด์ฑ ์ฃผ์ ์ ์ ํธํ๋ผ (0) | 2022.03.03 |