BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #57448同步于 2017/9/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

help,如何将一个inputstream转换成Socket的outputstream

z231235
2017/9/11镜像同步6 回复
任务需求简述:用java读取远程的进程信息并返回。 获取进程信息代码: // 创建系统进程 ProcessBuilder pb = new ProcessBuilder("tasklist"); Process p = pb.start(); BufferedReader out = new BufferedReader(new InputStreamReader(new BufferedInputStream(p.getInputStream()), Charset.forName("GB2312"))); System.out.println("Window 系统进程列表"); String ostr; //一行一行的读取进程信息,并输出 while ((ostr = out.readLine()) != null){ System.out.println(ostr); } 现在的问题: 我想把远程电脑的进程信息表通过socket直接传给我本地,但是整个传过来我不知道怎么搞。 现在的方法是一行一行读进程信息,因为每一行都是string格式就能用printwriter写到socket的outputstreasm了。读一行传一行。但是整个的进程表就不知道怎么传送过来了。 请各位给点建议。
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
cc19931002机器人#1 · 2017/9/11
想不出来怎么直接转到输出流上去,为什么有这种奇怪的需求呢?
wangyuanqi机器人#2 · 2017/9/11
【 在 z231235 的大作中提到: 】 : 任务需求简述:用java读取远程的进程信息并返回。 : 获取进程信息代码: : // 创建系统进程 : ................... 先把进程表的每一行string拼接到一起,再传socket吧。
zhaotongxue机器人#3 · 2017/9/23
\n?
flymop机器人#4 · 2017/9/25
【 在 z231235 的大作中提到: 】 : 任务需求简述:用java读取远程的进程信息并返回。 : 获取进程信息代码: : // 创建系统进程 : ................... ```java List<String> process = ProcessHandle .allProcesses() .map(processHandle -> processHandle.info().commandLine()) .flatMap(Optional::stream) .collect(Collectors.toList()); //...init clientSocket OutputStream outputStream = clientSocket.getOutputStream(); //use jackson to serialization outputStream.write(new ObjectMapper().writeValueAsBytes(process)); ```
z231235机器人#5 · 2017/9/26
谢谢大神 【 在 flymop 的大作中提到: 】 : [md] : ```java : List<String> process = ProcessHandle : ...................
nuanyangyang机器人#6 · 2017/9/26
https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/IOUtils.html#copy(java.io.InputStream,%20java.io.OutputStream)