社区
Java SE
帖子详情
Process.getInputStream()的大小限制问题
boxnoodle
2009-10-27 11:36:31
我通过Process.getInputStream()读取子进程的输出,当子进程输出一个大文件时,发现Process.getInputStream()一次最多只能读取8192个字节,这样的话就得多次读取才能把子进程输出读完。造成一个不便就是当子进程连续输出时要判断接收的是新数据还是前一批没接收完的数据。
大家有没有什么好办法?
...全文
902
5
打赏
收藏
Process.getInputStream()的大小限制问题
我通过Process.getInputStream()读取子进程的输出,当子进程输出一个大文件时,发现Process.getInputStream()一次最多只能读取8192个字节,这样的话就得多次读取才能把子进程输出读完。造成一个不便就是当子进程连续输出时要判断接收的是新数据还是前一批没接收完的数据。 大家有没有什么好办法?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
老紫竹
2009-10-27
打赏
举报
回复
当子进程连续输出时要判断接收的是新数据还是前一批没接收完的数据
看你这个描述,我不明白啥叫前一批?
这么讲,如果我给你全部的100万数据,你怎么区分哪些是前一批,哪些是后一批?
2批数据,本来就应该分成2次完成,或者使用非常明确的数据分割符,否则你为什么在一个数据里读取2批呢?
py330316117
2009-10-27
打赏
举报
回复
[Quote=引用 1 楼 bayougeng 的回复:]
设置标志位咯。
或者,close以后再open?
[/Quote]
今天这么多搞不懂得哪,是我理解有错误还是你们说的不明白啊
whut0802
2009-10-27
打赏
举报
回复
学习中。。不是很明白。。关注
bayougeng
2009-10-27
打赏
举报
回复
设置标志位咯。
或者,close以后再open?
boxnoodle
2009-10-27
打赏
举报
回复
看来只能用标识位了
java遇到
Process
输出流阻塞的
问题
今天发现之前写的一个程序,在程序中调用外部程序,需要把进程的
InputStream
的内容返回,在这个过程中,之前采用的直接获取,发现存在
InputStream
的结果太大,导致外部进程阻塞。 经过查资料,发现网上有
InputStream
流按照byte[]数组来读取,把内容拼接组成返回结果,这样可以解决进程阻塞的
问题
,但是存在内容读取重复的
问题
,而且不易解决。如果返回结果是字符串...
Java
Process
详解及实例
参考链接: Java
Process
详解及实例_JAVA教程_服务器之家 Java中
Process
类的使用与注意事项_Kevin.Yang的博客-CSDN博客_
process
类使用 Part1 原文链接:Java
Process
详解及实例_JAVA教程_服务器之家 Java可以通过Runtime来调用其他进程,如cmd命令,shell文件的执行等。可以应该该类设置系统时间,执行shell文件。此处记录几个有用应用如下。 设置本地时间 可以调用cmd /c date命令,完成本地时间设置,不过这
java
Process
执行批命令 cmd
错误输出与标准输出合并,以便通过使用
Process
类的get
InputStream
()方法可以读取错误并输出通过子进程所产生的任何错误输出随后由该对象的start()方法启动将与标准输出合并, 这样既可以用
Process
.get
InputStream
()方法来读取。此使得更容易与对应的输出相关的错误消息。初始值是false。
java wait for_java执行shell命令,判断命令是否执行完,并解决wait for()锁死
问题
java执行shell命令使用到
Process
和Runtime两个类,返回值通过
Process
类的get
InputStream
()方法获取import java.io.BufferedReader;import java.io.IOException;import java.io.
InputStream
Reader;import java.util.ArrayList;import java.ut...
踩坑1
拒绝服务攻击是一种滥用资源性的攻击。从代码角度来考虑,对于涉及到需要占用系统资源的外部数据而言, 代码逻辑中应该包含严格校验,防止无
限制
的输入。另外,谨慎使用线程阻塞的API,防止浪费系统资源或发生系统崩溃。
InputStream
inputStream
=
process
.get
InputStream
(); if (
inputStream
.available() > MAX_SIZE) { throw new BaseException("输入超过
大小
限制
!");...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章