java - 从批处理文件向 Java 进程提供输入

标签 java batch-file

如果我有一个简单的 java 程序来处理来自标准输入的文本行,那么我可以使用以下脚本运行它:

@Echo off
java Test < file.txt
pause
exit

脚本将 file.txt 中的输入行重定向到 java 程序中。

有什么方法可以避免使用单独的文件?还是这是最简单的方法?

谢谢。

最佳答案

使用 pipe .

这个简单的 Java 应用程序只是打印出来自 stdin 的行:

public class Dump {
  public static void main(String[] args) {
    java.util.Scanner scanner = new java.util.Scanner(System.in);
    int line = 0;
    while (scanner.hasNextLine()) {
      System.out.format("%d: %s%n", line++, scanner.nextLine());
    }
  }
}

用这个批处理文件调用:

@ECHO OFF
(ECHO This is line one
ECHO This is line two; the next is empty
ECHO.
ECHO This is line four)| java -cp bin Dump
PAUSE

...它将打印:

0: This is line one
1: This is line two; the next is empty
2:
3: This is line four

关于java - 从批处理文件向 Java 进程提供输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753841/

相关文章:

java - GWT 是否有可能在我不知情的情况下创建客户端到服务器的连接?

windows - 批处理,如何过滤此 HTML 文本以设置一些变量

windows - 从批处理文件中,调用taskkill.exe后如何等待进程退出?

java - Intellij IDEA 同一个项目中的多种语言

java - list.add() 和 list.add(new ArrayList<>()) 的区别?

java - 从java类在ubuntu中执行sudo命令

java - 在 Java 的线程中使用 PreparedStatements 是否正确?

date - 如何在批处理文件中获取昨天的日期?

windows - 大写文件名的第一个字母

Windows批处理文件起始目录时 'run as admin'