質問編集履歴

2

コメントで指摘いただいた不明瞭な点を直すように修正しました。

2023/06/19 05:01

投稿

toot_iba
toot_iba

スコア10

test CHANGED
File without changes
test CHANGED
@@ -9,23 +9,39 @@
9
9
 
10
10
  eclipseの機能として、標準入力をファイルから流す機能はあるようです。
11
11
  `デバッグボタンの隣の▼ボタン > デバッグの構成 > 共通タブ > 標準入出力 > コンソールに割り当てと入力ファイル にチェック`
12
+ ![標準入出力の設定箇所](https://ddjkaamml8q8x.cloudfront.net/questions/2023-06-19/9a02b952-99b0-4a03-880e-e01e6b6ad4e5.png)
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

「問題・課題が含まれていない質問」という修正依頼が来たため、現状の問題点を強調する記述を追加しました。

2023/06/19 03:10

投稿

toot_iba
toot_iba

スコア10

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