質問編集履歴

2

追記(2020-7-31) 無名クラス

2020/07/30 23:05

投稿

xebme
xebme

スコア1081

test CHANGED
File without changes
test CHANGED
@@ -223,3 +223,33 @@
223
223
  }
224
224
 
225
225
  ```
226
+
227
+
228
+
229
+ ### 追記(2020-7-31)
230
+
231
+ いまさらですが、無名クラスを使用するやり方を追記。
232
+
233
+
234
+
235
+ ```Java
236
+
237
+ import java.util.*;
238
+
239
+ import java.io.InputStreamReader;
240
+
241
+
242
+
243
+ public class Main_ {
244
+
245
+ public static void main(String[] args) throws Exception {
246
+
247
+ try (Scanner sc = new Scanner(
248
+
249
+ new InputStreamReader(System.in) {@Override public void close() {}})){
250
+
251
+ }
252
+
253
+ }
254
+
255
+ }

1

java.io.Console の情報を追記

2020/07/30 23:05

投稿

xebme
xebme

スコア1081

test CHANGED
File without changes
test CHANGED
@@ -177,3 +177,49 @@
177
177
  }
178
178
 
179
179
  ```
180
+
181
+
182
+
183
+ ### 追記(2019-6-29)
184
+
185
+ いまさらですが、java.io.Console を使うと try-with-resources でストリームが閉じられないことがわかりました。ただし eclipse で実行すると Console は null になります。コマンドラインで実行してください。
186
+
187
+
188
+
189
+ ```Java
190
+
191
+ import java.io.BufferedReader;
192
+
193
+ import java.io.Console;
194
+
195
+ import java.io.IOException;
196
+
197
+
198
+
199
+ public class ConsoleIo {
200
+
201
+ public static void main(String[] args) {
202
+
203
+ Console consl = System.console();
204
+
205
+ for (int i = 0; i < 2; ++i) {
206
+
207
+ try (BufferedReader rdr = new BufferedReader(consl.reader())) {
208
+
209
+ String line = rdr.readLine();
210
+
211
+ System.out.println(line);
212
+
213
+ } catch (IOException e) {
214
+
215
+ e.printStackTrace();
216
+
217
+ }
218
+
219
+ }
220
+
221
+ }
222
+
223
+ }
224
+
225
+ ```