teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2020/09/12 04:59

投稿

unhappychoice
unhappychoice

スコア1531

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  > ① まず、try文の中に書かれている File Writerは文字列をファイルに書き込むクラスで実行時例外が起きる可能性があるクラス?
2
2
 
3
- 例外が起きた場合でも、必ず開放する必要があるリソースです。
3
+ `try(...)` の中にあるリソースは、例外が起きた場合でも、必ず開放する必要があるリソースです。
4
4
  たとえば以下のようなケースがあるので、必ず開放する必要があるリソース、という概念が一般的にあります。
5
5
 
6
6
  例: ファイルのリソースをとったまま例外でプログラムが終了 -> ファイルディスクリプタが開放されなくなる -> ファイルが読み書きできなくなる

1

追記

2020/09/12 04:59

投稿

unhappychoice
unhappychoice

スコア1531

answer CHANGED
@@ -1,12 +1,16 @@
1
- > ①まず、try文の中に書かれている File Writerは文字列をファイルに書き込むクラスで実行時例外が起きる可能性があるクラス?
1
+ > ① まず、try文の中に書かれている File Writerは文字列をファイルに書き込むクラスで実行時例外が起きる可能性があるクラス?
2
2
 
3
3
  例外が起きた場合でも、必ず開放する必要があるリソースです。
4
4
  たとえば以下のようなケースがあるので、必ず開放する必要があるリソース、という概念が一般的にあります。
5
5
 
6
6
  例: ファイルのリソースをとったまま例外でプログラムが終了 -> ファイルディスクリプタが開放されなくなる -> ファイルが読み書きできなくなる
7
7
 
8
- > File Writernewしてそ中に(”data.txt")というものをお文字列として入れている?
8
+ 例外起こす可能性があるは `.write()` メソッドです。
9
9
 
10
+ Ref: [https://docs.oracle.com/javase/jp/7/api/java/io/OutputStreamWriter.html#write(char[], int, int)](https://docs.oracle.com/javase/jp/7/api/java/io/OutputStreamWriter.html#write(char[], int, int))
11
+
12
+ > ② File Writerをnewしてその中に(”data.txt")というものをお文字列として入れている?
13
+
10
14
  `"data.txt"` は単にファイル名です。 `data.txt` というファイルを書き込みで開く動作になります。
11
15
 
12
16