关于java 流 的使用问题

zz郑英俊 2018-08-11 01:35:08
我现在需要向一个名为p的process写入指令
我现在是使用BufferedWriter写,
问题在于
如果通过BufferedWriter写完马上关掉流, p 就可以接收到指令
但是我如果需要向p写入不止一个指令但不知道是多少个指令。应该用什么方法呢?

我用忙循环试了一下 但是依然只有在关掉流的时候p才能接收到指令
网上查到的说要调用flush()刷新我也在忙循环里调用了 但还是不行

代码如下
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Mainframe.p.getOutputStream()));
for(int n = 1;n>0;) {
if(mute!="") {
try {
bw.write(mute);
bw.flush();
System.out.println("指令输入完成");
mute="";
} catch (IOException e1) {
e1.printStackTrace();
mute="";
}
}
}
try {
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}

...全文
246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zz郑英俊 2018-08-12
  • 打赏
  • 举报
回复
引用 2 楼 tianfang 的回复:
要看服务端如何处理指令。比如ftp服务,约定每个指令以 \r\n结束,那么服务器收到\r\n结束的字符串就解释执行。

你的服务器是如何约定单个指令结束的?服务端写的不好就只能在流关闭的时候处理

那如果是用完就关 要怎么重写才能再用管道呢

比如上面的bw管道 关闭之后 我把它new到另一个process,关掉。然后再new回到p
像这样
bw = new BufferedWriter(new OutputStreamWriter(Mainframe.p.getOutputStream()));
System.out.println("bw通道创建成功");
try {
bw.write(mute);
bw.flush();
System.out.println("指令输入完成");
mute="";
bw.close();
} catch (IOException e1) {
e1.printStackTrace();
mute="";
}
try {
ps = Runtime.getRuntime().exec("cmd /c");
} catch (IOException e) {
e.printStackTrace();
}
bw = new BufferedWriter(new OutputStreamWriter(ps.getOutputStream()));
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}

那我直接调用这个类为什么也不行呢
tianfang 2018-08-12
  • 打赏
  • 举报
回复
要看服务端如何处理指令。比如ftp服务,约定每个指令以 \r\n结束,那么服务器收到\r\n结束的字符串就解释执行。

你的服务器是如何约定单个指令结束的?服务端写的不好就只能在流关闭的时候处理
zz郑英俊 2018-08-12
  • 打赏
  • 举报
回复
或者说每次要输入指令的时候 怎么生成一个新的通道呢?
alunSemiconductor 2018-08-11
  • 打赏
  • 举报
回复
p是如何解析你的指令的呢? 如果可以,你把指令拼到一起发给P,由P进行解析后,按照N个指令执行
内容概要:本文围绕城市场景下的无人机三维路径规划问题,提出了一种新颖的多目标粒子群优化算法(NMOPSO),旨在解决高维复杂环境中路径规划面临的多重挑战。研究聚焦于导航变量的多目标优化,构建了一个包含路径长度、飞行安全性、能量消耗等多个相互冲突目标的优化模型,并采用改进的粒子群算法进行高效搜索,最终获得一组Pareto最优解集,为实际决策提供多样化路径选择方案。该方法结合Matlab代码实现,详细阐述了算法的设计机制、数学建模程及仿真验证过程,充分展示了其在密集城市建筑环境中有效规避障碍物、满足飞行动力学约束并实现多目标权衡的能力,具有较强的工程应用价值。; 适合人群:具备一定优化算法理论基础和Matlab编程能力,从事无人机路径规划、智能交通系统、自动化控制、人工智能应用等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于城市环境中的无人机物配送、巡检监控、应急救援等实际任务的三维路径规划;②为高维、非线性、多约束的多目标优化问题提供有效的算法设计思路与改进参考;③通过Matlab仿真平台复现算法,进一步开展性能测试、参数调优与算法对比研究,推动相关领域的技术创新。; 阅读建议:此资源强调算法原理与工程实践的深度融合,建议读者重点研读目标函数的构建方式、约束条件的处理策略以及NMOPSO算法的核心改进机制,并务必动手运行和调试所提供的Matlab代码,以深入理解算法在三维空间路径优化中的具体实现细节与实际表现。
内容概要:本文档围绕基于10机39节点的电力系统仿真展开,依托Matlab/Simulink平台构建标准电力系统模型,系统性地实现了电力系统稳态与暂态过程的仿真分析。内容涵盖潮计算、短路故障、暂态稳定性、N-k故障分析、蓄意攻击与级联故障模拟等核心问题,并引入混合整数线性规划(MILP)等优化方法进行电网脆弱性评估与关键故障筛选。文档突出科研复现导向,整合了状态估计、虚假数据注入攻击、优化算法等前沿技术的交叉应用,具有较强的理论深度与工程实践价值。; 适合人群:具备电力系统基本理论知识和Matlab/Simulink仿真能力的研究生、科研人员及电力工程技术人员,特别适用于从事电力系统稳定性分析、安全防护、故障演化机制与优化调度等领域研究的专业人士。; 使用场景及目标:① 掌握10机39节点系统的建模方法与仿真程;② 学习并复现电力系统典型故障(如短路、N-k故障、级联故障)的建模与动态响应分析;③ 理解基于MILP的电网脆弱性评估、攻击策略建模与故障传播机制;④ 结合优化算法开展电力系统安全防御、恢复策略与韧性提升研究。; 阅读建议:建议结合文档中标注的“顶级EI复现”“核心论文复现”等标签,重点关注模型构建逻辑与代码实现细节,优先运行仿真案例以理解其物理背景与数学建模原理,同时深入分析故障场景设定、目标函数设计及优化求解策略的工程意义与学术价值。

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧