Process类:创建子进程进行输入和输出 --《JAVA编程思想》78

ABB机器人发送实时位置给PLC 本文使用中断方式实现,多任务要订购ABB功能包 Profinet总线组变量配置 注:映射为16位和32位均可用 声明数据 VAR num CurrentExAxisPos;!外轴位置 VAR robtarget pCurrentPos;!实时位置 var intnum TrapNum;!中断号 初始化开中断 IDelete TrapNum;!中断号 CONNECT TrapNum WITH iTrapCurPos;!连接中... 阅读详情

如果你想在 JAVA 中执行其他操作系统的程序,例如:运行 DOS 命令、shell 脚本、exe 文件,只需了解 java.lang.Process 类的用法,上述问题皆可实现。

1.输入

以 Windows 平台为例,来看一个简单的例子:

ProcessBuilder 可用于构建 Process ,其构造方法接收 String 类型的可变参数,如果命令带有多个参数,需分割成多个 String 字符串 ;

getInputStream() 获取进程标准的输出流,再使用 InputStreamReader 读取其中的字符,如果包含中文字符,需要指定编码格式;

BufferedReader 开启缓冲输入,增加读取速度;

public class ProcessDemo {

    public static void command(String command) throws IOException {
        Process process = new ProcessBuilder(command.split(" ")).start();
        //指定编码格式,解决中文乱码问题
        BufferedReader results = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));
        String s;
        while ((s = results.readLine()) != null) {
            System.out.println(s);
        }
        //关闭流
        results.close();
        //销毁进程
        process.destroy();
    }

    public static void main(String[] args) throws IOException {
        command("ping www.baidu.com");
    }

}

正在 Ping www.a.shifen.com [14.215.177.39] 具有 32 字节的数据:
来自 14.215.177.39 的回复: 字节=32 时间=16ms TTL=55
来自 14.215.177.39 的回复: 字节=32 时间=16ms TTL=55
来自 14.215.177.39 的回复: 字节=32 时间=16ms TTL=55
来自 14.215.177.39 的回复: 字节=32 时间=16ms TTL=55

14.215.177.39 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 16ms,最长 = 16ms,平均 = 16ms

2.输出

假设我们现在需要往进程中输出信息,则需要使用 getOutputStream() 获取面向进程的输出流;

需要注意的是,写入完成后必须得执行 flush() 和 close() 方法,否则进程无法判断写入是否完成,导致写入失败;

  • 示例
public class ProcessDemo {

    public static void command(String command) throws IOException, InterruptedException {
        Process process = new ProcessBuilder(command.split(" ")).start();
        OutputStream outputStream = process.getOutputStream();
        String str="2021/12/01";
        outputStream.write(str.getBytes());
        outputStream.flush();
        //关闭输出流
        outputStream.close();
        //指定编码格式,解决中文乱码问题
        BufferedReader results = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));
        String s;
        while ((s = results.readLine()) != null) {
            System.out.println(s);
        }
        //关闭输入流
        results.close();
        //销毁进程
        process.destroy();
    }

    public static void main(String[] args) throws IOException, InterruptedException {
        command("CMD /C date");
    }

}

当前日期: 2021/12/08 周三 
输入新日期: (年月日) 2021/12/01

本次分享至此结束,希望本文对你有所帮助,若能点亮下方的点赞按钮,在下感激不尽,谢谢您的【精神支持】。

若有任何疑问,也欢迎与我交流,若存在不足之处,也欢迎各位指正!

当SLAM遇上FPGA:打造一个会“硬件加速”的激光雷达SLAM系统 点云数据的运动畸变校正特征点提取与匹配、以及ICP迭代最近点配准。在传统方案中,我们通常用ARM核完成所有计算。但点云配准中的最近邻搜索(KD-Tree)需要大量分支判断,CPU处理起来效率很低;而ICP中的矩阵分解(SVD)虽然计算量大,但非常适合并行化。ZYNQ的特殊之处在于它把ARM(PS端)和FPGA(PL端)集成在同一颗芯片上。ARM擅长跑操作系统、处理复杂逻辑和调度,FPGA擅长做高吞吐量的并行计算。两者之间通过AXI总线高速互联,数据交换延迟只有几十个时钟周期。 阅读详情

相关推荐

拥有AI助手便能解放双手?——抖音直播脚本的生成

科技改变生活,AI助手帮你完成抖音创作!

Scientist_的博客 2352

Java Process getInputStream()方法与示例

流程类的getInputStream()方法 (Process Class getInputStream() method) getInputStream() method is available in java.lang package. getInputStream()方法在java.lang包中可用。 getInputStream() method is used to get the ...

cumtv80668的专栏 8993

销售预测的方法与模型(三)丨安全库存与再订货(补货)

较高的 Z 值对应较高的服务水平(例如,服务水平 99% 对应 Z 值 2.33),意味着企业希望更低的缺货风险,因此需要更高的安全库存。在再订货点的管理中,考虑到供应商交货的不确定性,通常需要结合安全库存,以防止在交货期间库存用尽。要对L开根号,根号L表示交货周期越长,企业需要的安全库存越多,因为在较长的供应期内,需求波动的累积效应更明显。举例:供应商的交期服从标准差为2件/天的正态分布,顾客需求为50件/天的正态分布,若要客户服务水平达到 90%,安全库存量应该是多少?下面介绍几种核心的模型与公式。

weixin_45675709的博客 1534

java process 输出流_Java Process getInputStream()方法

Java Process getInputStream()方法java.lang.Process.getInputStream()方法获取子进程的输入流。数据流获取由该Process对象表示的进程的标准输出流管道的数据。1 语法public abstract InputStream getInputStream()2 参数无3 返回值此方法返回输入流连接到子进程的正常输出。4 示例package...

weixin_39636253的博客 1685

学习海康VisionMaster之表面缺陷滤波

本文介绍了VisionMaster中表面缺陷滤波技术的应用。该技术通过数学变换抑制背景干扰、增强缺陷特征,适用于电池铝壳、垫圈/螺丝等无纹理背景的表面缺陷检测(划痕、凹坑、异物等)。操作流程包括:图像导入、轮廓定位、位置修正、参数设置(重点讲解滤波核尺寸/数量/标准差等关键参数的调整策略)。文章通过案例演示了如何通过多方向滤波响应识别表面划伤,并指出需结合blob分析进一步优化检测结果。该技术对工业质检具有实用价值,参数设置需结合缺陷特征与背景特性灵活调整。

yuhouxiyang的专栏 2827

reCAPTCHA v3隐形验证码实战:5分钟教你用Capsolver获取0.9高分令牌

本文提供了一份reCAPTCHA v3隐形验证码的实战指南,详细解析其浏览器评分机制,并手把手教你使用Capsolver自动化获取0.9高分令牌。内容涵盖从环境侦察、关键参数(sitekey与pageAction)提取,到API调用、结果轮询及令牌使用的完整流程,旨在帮助开发者高效绕过自动化交互障碍。

weixin_29314405的博客 347

Process应用之惑

很多时候,我们需要调用系统命令来做些处理。比如,在程序中ping设备是否能连接,执行数据库的自动备份,以及程序的重启。这时候我们必须要使用Process类来完成这些功能。 一般情况下,我们都会将命令执行过程中的信息输出,以便检查问题。但有时候我们还需知道这个执行的进程在什么时候结束,因为不仅要知道结束了,还要知道该进程完成时返回的结果。 可能会说,这些不都是...

茶花漫道 653

东方财富网API接口逆向分析:手把手教你破解那个带jQuery回调的股票数据接口

本文详细解析了东方财富网股票数据API接口的逆向工程实战技巧,重点介绍了JSONP接口的核心机制、参数解析及数据处理方法。通过Python代码示例演示了如何构造请求、处理分页数据及应对反爬策略,帮助开发者高效获取股票数据。文章还提供了完整的爬虫实现案例和常见问题排查指南。

weixin_30790841的博客 714

java 中getinputstream_java.lang.Process.getInputStream()方法实例

全屏java.lang.Process.getInputStream()方法获取子进程的输入流。数据流获取由该Process对象表示的进程的标准输出流管道的数据。声明以下是java.lang.Process.getInputStream()方法的声明publicabstractInputStreamgetInputStream()参数NA返回值此方法返回输入流连接到子进程的正常输出。异常NA...

weixin_33173924的博客 673

Obsidian和Typora图片路径同步终极指南:告别混乱的assets文件夹

本文详细解析了Obsidian与Typora图片路径同步的终极解决方案,通过Custom Attachment Location插件实现动态路径管理,解决了两款工具间图片兼容性问题。文章提供了从基础配置到高级应用的完整指南,帮助用户告别混乱的assets文件夹,提升工作效率。

g9h0i1的博客 821

SAP HANA CDS View Syntax Options 全解:从语法到工程实践

本文面向SAP HANA工程师,深入解析CDS视图的语法与应用场景。文章涵盖XS Advanced环境下的CDS视图设计要点,包括SELECT基础语法、聚合函数与分组约束、参数化视图实现以及常见连接操作。特别强调工程实践中的注意事项:GROUP BY禁用表达式、原生表名大小写规范、结果集裁剪方式选择等。通过两个真实案例(办公室占用率统计和客户画像分析)展示CDS视图在实际业务中的应用,并提供性能优化建议。全文采用中英文混排规范,技术术语使用反引号标注,旨在为开发者提供清晰的CDS视图开发指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 209

java 中getinputstream_Java Process getInputStream()方法与示例

流程类getInputStream()方法getInputStream()方法在java.lang包中可用。getInputStream()方法用于获取流程和子流程的输入流。getInputStream()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。返回输入流时,getInputStream()方法不会引发异常。语法:publicabstractI...

weixin_28487433的博客 9511

Megatron-LM从头训练大语言模型:并行策略图示【Tensor并行、Pipeline并行、Data并行、Sequence并行、virtual_pipeline并行、Context并行】

节点包含的层每GPU的参数内存每GPU的激活内存节点0Stage 0层1-1212层参数/2 (TP切分)8k序列激活 (CP切分)节点1Stage 1层13-2412层参数/2 (TP切分)8k序列激活 (CP切分)节点2Stage 2层25-3612层参数/2 (TP切分)8k序列激活 (CP切分)节点3Stage 3层37-4812层参数/2 (TP切分)8k序列激活 (CP切分)负载均衡:每个节点处理相同数量的层(12层)内存优化。

u013250861的博客 285

Java Process详解

Process简介 我们在实际Java开发工作中可能会遇到调用操作系统命令的场景,比如查看下文件夹,执行下sh/exe文件等等,那么我们就要用到Process了! 首先,打开API来认识下Process : java.lang 类 Process java.lang.Object 继承者 java.lang.Process public abstract class Process extends Object

杜海的博客 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Process类详解

Process类详解一、 jkd8 的特性。冒泡排序;zk、redis(最大) 一、 ProcessBuilder.start() 和 Runtime.exec() 方法都被用来创建一个操作系统进程(执行命令行操作),并返回 Process 子类的一个实例,该实例可用来控制进程状态并获得相关信息。 ProcessBuilder是一个final类,Process是一个抽象类。 每个进程生成器(即Pr...

木瓜有益健康的博客 4347

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java中process方法用处_java Process类详解!

本篇文章是继我的上一篇文章black:java Runtime.exec方法详解!​zhuanlan.zhihu.com如果对runtime.exec方法不了解建议先行阅读上篇文章。好的,进入正题,我们先来看看Process类在API中的解释:java.lang类 Processjava.lang.Objectjava.lang.Processpublic abstract class Proce...

weixin_39851048的博客 1286

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java中的Process类

Process类是一个抽象类,其内部所有的方法都是抽象的,Runtime.exec()方法可以创建一个本地进程,并返回Process子类的一个实例。 Process类的API如下: l  destroy():杀掉子进程 l  exitValue():返回子进程的出口值 l  InputStream getErrorStream():获得子进程的错误流 l  Inp

fyfcauc的专栏 1027

java中process方法用处_JAVA中Process类的用法(感觉不错)

装载的前辈的一、概述 Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序)。 Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。 ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实...

weixin_36145472的博客 2781

Java Process类详解

我们先来看看Process类在API中的解释:Process提供对ProcessBuilder.start和Runtime.exec启动的本机进程的控制。该类提供了从进程执行输入,执行输出到进程,等待进程完成,检查进程的退出状态以及销毁(杀死)进程的方法。ProcessBuilder.start()和Runtime.exec方法创建本机进程并返回Process的子类实例,该实例可用于控制进程并获取有关它的信息。默认情况下,创建的进程没有自己的终端或控制台。

图南的博客 2883

Process 类

java.lang 类 Process java.lang.Object java.lang.Process public abstract class Process extends Object ProcessBuilder.start()和Runtime.exec方法创建一个本机进程,并返回Process子类的一个实例,该实例可用来控制进程并获得相关信息。Process类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程...

m0_37839403的博客 756

java Process类的使用

java.lang包来提供了Process及其相关类,据我初步的理解,这个类的主要作用是在java程序运行过程中调用其它可执行程序,可以说是对这一操作专门提供的一个类封装。 主要流程: Process类对象工作的主要步骤为:          1. 构造Process对象

随心所欲的专栏 1490

java Process 进程和子进程

我整理的一些关于【Java】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/bLN8S1Java Process 进程与子进程的实现教程 在Java编程中,创建和管理进程是一个非常重要的功能。特别是在需要调用外部程序或服务的情况下,理解如何处理进程和子进程显得尤为重要。本文将...

weixin_40289166的博客 251

process 输出 java,java Process类详解!程序如何动态编译输入的代码并运行,并且进行输入输出?!...

本篇文章是继我的上一篇文章java Runtime.exec方法详解!程序如何动态编译输入的代码并运行?!如果对runtime.exec方法不了解建议先行阅读上篇文章。好的,进入正题,我们先来看看Process类在API中的解释:java.lang类 Processjava.lang.Objectjava.lang.Processpublic abstract class Process exte...

weixin_35878962的博客 704

Java中使用Runtime和Process类运行外部程序

使用场景 java与非java程序之间的交互 Runtime 使用Runtime.getRuntime().exec()方法可以在java程序里运行外部程序。 exec(String command) exec(String command, String envp[], File dir):传递环境变量并标识当前目录 exec(String cmd, String envp[]):传递环境变量...

tinysakura的博客 2519

非常有用的一个类Process

java.lang 类 Processjava.lang.Object java.lang.Processpublic abstract class Processextends ObjectProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。

每天=生命的最后一天 822

java.lang.Process类

 一、概述      Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序)。      Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。      ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实

Shiring-Spring 713
上一篇: 文件的输入和输出 --《JAVA编程思想》77
下一篇: NIO 类的基本用法 --《JAVA编程思想》79
BaymaxCS
博客等级 码龄9年 61粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BaymaxCS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值