如何使用 Java 在 cmd window 上显示 .txt 文件的内容?
How to display the contents of a .txt file on cmd window using Java?
我正在做一个项目,我想在 CMD window 上显示一个 .txt 文件的内容。我写了这段代码来在 cmd 上打开一个 demo.txt 文件,但它不起作用。 “路径”变量包含放置 demo.txt 文件的位置(如您所见)。
public static void main(String[] args){
try{
String path = "C:\Users\Hp\Documents\NetBeansProject\Project\build\classes\";
//cmd command to open open the txt file on cmd window
String command = ("type " + path + "\demo.txt");
//executing this command on cmd using java
Process process = Runtime.getRuntime().exec(command);
}catch(IOException e){
e.printStackTrace();
}
此代码产生以下输出:
不要介意这些令人讨厌或错误的代码,因为我在 Java 编程方面还是个初学者。
显示 CMD window 的可执行文件(如您在问题中所指)是:
C:\Windows\System32\conhost.exe
使用classjava.lang.ProcessBuilder
启动conhost.exe
ProcessBuilder pb = new ProcessBuilder("conhost.exe");
Process proc = pb.start();
当您运行此java代码时,将显示CMD window。
请注意,您不能在此 window 中键入命令,因为它的标准输入是您的 java 程序而不是键盘。但是,您可以从 java 代码向 window 发送命令。您只需写入 Process
实例的输出流。
首先得到Process
的输出流
OutputStream os = proc.getOutputStream();
然后将您想要的命令写入输出流。
我使用 [Windows] start
命令打开了一个单独的 window – 您可以与之交互 – 以及 运行 您想要的命令 window。最后,我关闭了通过 conhost.exe
打开的 window。结果,start
命令打开的window保持打开状态,java程序终止。
这是完整的代码。
import java.io.IOException;
import java.io.OutputStream;
public class Script {
public static void main(String[] args) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("conhost.exe");
Process proc = pb.start(); // throws java.io.IOException
OutputStream os = proc.getOutputStream();
os.write("start /D C:\Users\Hp\Documents\NetBeansProject\Project\build\classes type demo.txt".getBytes()); // throws java.io.IOException
os.write(System.lineSeparator().getBytes()); // throws java.io.IOException
os.write("exit".getBytes()); // throws java.io.IOException
os.write(System.lineSeparator().getBytes()); // throws java.io.IOException
os.flush(); // throws java.io.IOException
int status = proc.waitFor(); // throws java.lang.InterruptedException
System.out.println("Exit status = " + status);
}
}
我正在做一个项目,我想在 CMD window 上显示一个 .txt 文件的内容。我写了这段代码来在 cmd 上打开一个 demo.txt 文件,但它不起作用。 “路径”变量包含放置 demo.txt 文件的位置(如您所见)。
public static void main(String[] args){
try{
String path = "C:\Users\Hp\Documents\NetBeansProject\Project\build\classes\";
//cmd command to open open the txt file on cmd window
String command = ("type " + path + "\demo.txt");
//executing this command on cmd using java
Process process = Runtime.getRuntime().exec(command);
}catch(IOException e){
e.printStackTrace();
}
此代码产生以下输出:
不要介意这些令人讨厌或错误的代码,因为我在 Java 编程方面还是个初学者。
显示 CMD window 的可执行文件(如您在问题中所指)是:
C:\Windows\System32\conhost.exe
使用classjava.lang.ProcessBuilder
启动conhost.exe
ProcessBuilder pb = new ProcessBuilder("conhost.exe");
Process proc = pb.start();
当您运行此java代码时,将显示CMD window。
请注意,您不能在此 window 中键入命令,因为它的标准输入是您的 java 程序而不是键盘。但是,您可以从 java 代码向 window 发送命令。您只需写入 Process
实例的输出流。
首先得到Process
OutputStream os = proc.getOutputStream();
然后将您想要的命令写入输出流。
我使用 [Windows] start
命令打开了一个单独的 window – 您可以与之交互 – 以及 运行 您想要的命令 window。最后,我关闭了通过 conhost.exe
打开的 window。结果,start
命令打开的window保持打开状态,java程序终止。
这是完整的代码。
import java.io.IOException;
import java.io.OutputStream;
public class Script {
public static void main(String[] args) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("conhost.exe");
Process proc = pb.start(); // throws java.io.IOException
OutputStream os = proc.getOutputStream();
os.write("start /D C:\Users\Hp\Documents\NetBeansProject\Project\build\classes type demo.txt".getBytes()); // throws java.io.IOException
os.write(System.lineSeparator().getBytes()); // throws java.io.IOException
os.write("exit".getBytes()); // throws java.io.IOException
os.write(System.lineSeparator().getBytes()); // throws java.io.IOException
os.flush(); // throws java.io.IOException
int status = proc.waitFor(); // throws java.lang.InterruptedException
System.out.println("Exit status = " + status);
}
}