java 进程 输入 重定向_java基础:1.2 输入重定向、输出重定向

对于类似于大量数据求和等问题,如果一个个数据通过键盘键入,工作量将很大。可以把这些数据用空格隔开,保存在一个input.txt文件中,使用输入重定向命令。

输入重定向命令  java SentinelValue < input.txt

输出重定向命令  java ClassName > output.txt

同时使用 java SentinelValue < input.txt > output.txt

程序如下:

import java.util.Scanner;

public class Sumdata {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner indata = new Scanner(System.in);

// Read an initial data

//System.out.print("Enter an int value (the program exits if the input is 0): ");

int data = indata.nextInt();

// Keep reading data until the input is 0

int sum = 0;

while (data != 0) {

sum += data;

// Read the next data

//System.out.print("Enter an int value (the program exits if the input is 0): ");

data = indata.nextInt();

}

System.out.println("The sum is " + sum);

}

}

操作如下:

a634e69347240c7ac84028912df49901.png

结果如下:

c0eede22b5d374d6d027ef6689790e39.png

文件目录下:

b881aed5478faf0d14d30f61589bb4ea.png

Java操作进程和线程的方式是不同的,下面分别给出详细示例和代码: 1. 操作进程 1.1 使用ProcessBuilder启动进程 ProcessBuilder类提供了更多的灵活性和功能,可以通过设置工作目录、重定向输入输出流、设置环境变量等来启动进程。下面是一个简单的示例: ```java ProcessBuilder processBuilder = new ProcessBuilder("notepad.exe"); try { Process process = processBuilder.start(); } catch (IOException e) { e.printStackTrace(); } ``` 上面的代码会启动记事本程序,并返回一个Process对象,通过这个对象可以读取和操作进程输入输出和错误流。 1.2 使用Runtime启动进程 Runtime类提供了更简单的方式来启动进程,但功能相对较少。下面是一个简单的示例: ```java Runtime runtime = Runtime.getRuntime(); try { Process process = runtime.exec("notepad.exe"); } catch (IOException e) { e.printStackTrace(); } ``` 上面的代码也会启动记事本程序,并返回一个Process对象。 2. 操作线程 2.1 使用Thread类创建线程 在Java中,可以通过继承Thread类或实现Runnable接口来创建线程。下面是一个继承Thread类创建线程的示例: ```java class MyThread extends Thread { @Override public void run() { // 线程执行的代码 } } MyThread myThread = new MyThread(); myThread.start(); ``` 上面的代码会创建一个MyThread对象并启动一个新线程,该线程会执行MyThread的run方法中的代码。 2.2 使用Runnable接口创建线程 下面是一个实现Runnable接口创建线程的示例: ```java class MyRunnable implements Runnable { @Override public void run() { // 线程执行的代码 } } MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable); thread.start(); ``` 上面的代码会创建一个MyRunnable对象,并将其作为参数传递给Thread构造函数,从而创建一个新线程并启动它。该线程会执行MyRunnable的run方法中的代码。 注意:以上示例仅供参考,实现线程的方式有很多种,具体实现方式取决于具体的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值