質問編集履歴
2
コメントで指摘いただいた不明瞭な点を直すように修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,23 +9,39 @@
|
|
9
9
|
|
10
10
|
eclipseの機能として、標準入力をファイルから流す機能はあるようです。
|
11
11
|
`デバッグボタンの隣の▼ボタン > デバッグの構成 > 共通タブ > 標準入出力 > コンソールに割り当てと入力ファイル にチェック`
|
12
|
+

|
13
|
+
|
12
14
|
|
13
15
|
この方法を試したところ、後述のコードの`scanner.nextLine();`にてプログラムは止まるようになりました。
|
14
16
|
想像するに、EOFを受け取ることができず、待機状態となっているものと思います。
|
15
17
|
|
16
18
|
コンソールからの入力であれば、正常に`scanner.close()`へ遷移します。
|
17
|
-
コンソールと入力ファイルの両方から入力を受け付けるようにし、`scanner.nextLine()`での待機中にコンソールから`Ctrl-D`を押すと、正常に`scanner.close()`へ遷移します。このとき、入力ファイルの内容がscannerによって読み取られていることを確認しています。ただこの回避策は不便ですので、わざわざコンソールで操作しなくとも、入力ファイルから標準入力を受け取り、処理が進んでほしいと思っています。
|
19
|
+
上記のEclipseの設定にて、標準入出力をコンソールと入力ファイルの両方から入力を受け付けるようにし、`scanner.nextLine()`での待機中にコンソールから`Ctrl-D`を押すと、正常に`scanner.close()`へ遷移します。このとき、入力ファイルの内容がscannerによって読み取られていることを確認しています。ただこの回避策は不便ですので、わざわざコンソールで操作しなくとも、入力ファイルから標準入力を受け取り、処理が進んでほしいと思っています。
|
18
20
|
|
19
21
|
### 該当のソースコード
|
20
22
|
|
21
|
-
|
23
|
+
プログラムは次の通りです。
|
22
24
|
```java
|
25
|
+
package sample;
|
26
|
+
|
27
|
+
import java.util.Scanner;
|
28
|
+
|
29
|
+
public class Sample {
|
30
|
+
|
31
|
+
public static void main(String[] args) {
|
23
|
-
Scanner scanner = new Scanner(System.in);
|
32
|
+
Scanner scanner = new Scanner(System.in);
|
24
|
-
String input = scanner.nextLine();
|
33
|
+
String input = scanner.nextLine();
|
25
|
-
scanner.close();
|
34
|
+
scanner.close();
|
35
|
+
|
36
|
+
System.out.println(input);
|
37
|
+
}
|
38
|
+
}
|
26
39
|
```
|
27
40
|
|
28
|
-
標準入力としては
|
41
|
+
標準入力としては画像のようにファイルを指定しています。ファイル内容は次のとおりです。
|
42
|
+
```text
|
43
|
+
Hello World!
|
44
|
+
```
|
29
45
|
|
30
46
|
### 補足情報(FW/ツールのバージョンなど)
|
31
47
|
|
1
「問題・課題が含まれていない質問」という修正依頼が来たため、現状の問題点を強調する記述を追加しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
(Eclipse)ファイルからの標準入力を受けるときEOFを取得する方法
|
1
|
+
(Eclipse)ファイルからの標準入力を受けるとき、EOFを取得する方法
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 実現したいこと・知りたいこと
|
2
2
|
|
3
|
-
- Eclipseでデバッグをする際に、標準入力を入力ファイルとして受け取り、**EOFまで取得したい**
|
3
|
+
- Eclipseでデバッグをする際に、標準入力を入力ファイルとして受け取り、そのまま**EOFまで取得したい**
|
4
4
|
- 発生している現象は、他の方の環境で再現性があるのかどうか
|
5
5
|
|
6
6
|
### 前提
|
@@ -14,7 +14,7 @@
|
|
14
14
|
想像するに、EOFを受け取ることができず、待機状態となっているものと思います。
|
15
15
|
|
16
16
|
コンソールからの入力であれば、正常に`scanner.close()`へ遷移します。
|
17
|
-
コンソールと入力ファイルの両方から入力を受け付けるようにし、`scanner.nextLine()`での待機中にコンソールから`Ctrl-D`を押すと、正常に`scanner.close()`へ遷移します。このとき、入力ファイルの内容がscannerによって読み取られていることを確認しています。
|
17
|
+
コンソールと入力ファイルの両方から入力を受け付けるようにし、`scanner.nextLine()`での待機中にコンソールから`Ctrl-D`を押すと、正常に`scanner.close()`へ遷移します。このとき、入力ファイルの内容がscannerによって読み取られていることを確認しています。ただこの回避策は不便ですので、わざわざコンソールで操作しなくとも、入力ファイルから標準入力を受け取り、処理が進んでほしいと思っています。
|
18
18
|
|
19
19
|
### 該当のソースコード
|
20
20
|
|