回答編集履歴

1

コメントへの返信内容を追記しました。

2016/03/22 03:06

投稿

argius
argius

スコア9390

test CHANGED
@@ -103,3 +103,83 @@
103
103
  // }
104
104
 
105
105
  ```
106
+
107
+
108
+
109
+ ---
110
+
111
+
112
+
113
+ (2016/03/22 00:21のコメントに対する追記)
114
+
115
+
116
+
117
+ 「デバックで確認」とありましたので、そのデバッグのプロセスが残っているのではないかと推測しました。
118
+
119
+ Javaプロセスが終了していれば、ファイルをクローズしているかどうかにかかわらず、ファイルがつかみっぱなしになることはないはずです。
120
+
121
+
122
+
123
+ エラーハンドリングの例は、
124
+
125
+ ひとつは`UnsupportedEncodingException`なんかは、catchせずに、
126
+
127
+ `public static void main(String[] args) throws UnsupportedEncodingException {`
128
+
129
+ のようにしてmainメソッドの外に投げてしまえば、
130
+
131
+ 処理の中断にもなるし、エラー処理を詳細に記述しなくて済みます。
132
+
133
+
134
+
135
+ もしくは、
136
+
137
+
138
+
139
+ ```lang-java
140
+
141
+ try {
142
+
143
+ try (BufferedReader brC = new BufferedReader(new InputStreamReader(
144
+
145
+ new FileInputStream("C:/Users/temp/Desktop/inC.csv"),"JISAutoDetect"))) {
146
+
147
+ // inC.csvの処理
148
+
149
+ }
150
+
151
+ try (BufferedReader brM = new BufferedReader(new InputStreamReader(
152
+
153
+ new FileInputStream("C:/Users/temp/Desktop/inM.csv"),"JISAutoDetect"))) {
154
+
155
+ // inM.csvの処理
156
+
157
+ }
158
+
159
+ try (BufferedReader brA = new BufferedReader(new InputStreamReader(
160
+
161
+ new FileInputStream("C:/Users/temp/Desktop/inA.csv"),"JISAutoDetect"))) {
162
+
163
+ // inA.csvの処理
164
+
165
+ }
166
+
167
+ } catch(IOException e) {
168
+
169
+ System.err.println("エラー: " + e);
170
+
171
+ }
172
+
173
+ ```
174
+
175
+
176
+
177
+ のようにして、例外が発生したら外側のcatchに飛んで、ただちに処理が中断するようにします。
178
+
179
+ `IOException`は`FileNotFoundException`を兼ねますので、一番外側で`IOException`をcatchするだけで良いです。
180
+
181
+ その場合、エラーメッセージは詳細には設定できませんが、その代わりにメインの処理に集中できます。
182
+
183
+ または`UnsupportedEncodingException`と同じように、mainメソッドの外に投げるようにしても良いです。
184
+
185
+