私はコマンドラインから入力を受け取り、に標準入力を送り、出力を標準出力に出力するプログラムを持っています。コマンドラインに入力されることになったコードは以下のように見えることを意図している:コマンドプロンプトで入出力ファイルを使用してJavaプログラムを実行する
java package.sub.Calc < input-file > output-file
または
echo some inputs to the calculator | java
package.sub.Calc
をしかし、私はそれが正しく動作するように見えることはできません。目標は、それが中にプログラムにテキストファイルを渡すか、コマンドライン上で右そこにあなたの数学の問題を書くことができるようにすることで、パイプ。
プログラムは
java -cp . package.sub.Calc
正しく実行され、その後持ちますユーザータイプを入力してEnterキーを押します。
ファイル名がinput.txt
で、コマンドラインから呼び出して、コマンドラインに答えを表示したい場合(プログラムはSystem.out.println
に設計されています)、どのようにこの情報を入力しますか?
私の現在のコードは、System.in
のScanner
を実装しています。私はこれを動作させるために他の何かを使わなければならないでしょうか?コマンドプロンプトで何かを実行するのが初めてで、動作させることができないようです。
ご協力いただきまして誠にありがとうございます。
マイコード:
public static void main(String[] args) {
Calc calc = new Calc();
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
String input = "";
List<String> strs = new ArrayList<>();
ArrayList<String> tokens;
while (sc.hasNextLine()) {
String line = sc.nextLine().trim();
if (line.isEmpty()) {
for (String s : strs) {
sb.append(s);
input = sb.toString();
}
tokens = new ArrayList<>(Arrays.asList(input.split(" ")));
//call calculate and reset
calc.calculate(tokens);
strs.clear();
tokens.clear();
sb.setLength(0);
input = "";
} else if (line.length() == 1) {
strs.add(" ");
strs.add(line);
strs.add(" ");
//manual user exit case
} else if (line.equals("EXIT")){
System.exit(0);
}else {
strs.add(line);
}
}
}
コマンドラインでファイル名を 'String'とし、その文字列をJavaで使用してファイルを開くのはどうでしょうか?この例を見てください。http://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/ – jmcg
これまでのコードを提供してください。あなたが記述しているものはうまくいくはずです。問題があれば、あなたの実装にはおそらく存在します。 – Tim
@Timが私の主な方法を追加しました。問題が自分のコードであるか、コマンドラインに何を入力したのかわからない。 input.txtにどのように渡すのですか? – Alkarin