我想将一些输入字符串设置为stdin,以便另一个进程可以读取stdin作为输入。我用Java BufferedWriter
。但是,如果输入字符串大于管道大小或其他进程不读取,我该如何处理这种情况?是否有API来检查管道是否可用于写入?Java BufferedWriter.write
0
A
回答
1
但我怎么处理的情况下,当输入字符串比管道尺寸
你不必做大。它会阻塞,直到空间可用。
或其他进程不读取?
再次,您将阻止,直到空间可用。如果其他进程没有读取,那是另一个进程中的一个错误。
是否有API来检查管道是否可用于写入?
不。这是Java阻塞的I/O。它阻止。 Java不提供任何其他方式来写入进程的输入,或查看阻塞写入是否会阻塞。
我有一个代码审查反馈说写会如果没有一个是从它
读取被阻塞,这是正确的,但他们怎么指望你做什么呢?它阻止了I/O,这就是它的工作原理。问问他们他们期望你怎么做。
NB stdin
是输入的名称,而不是输出的名称。不要将输入的名称用于输出流。它被输入到另一个进程,但输出给你的。我不会称之为stdout
,它不是你的stdout
。如果需要更多的特殊性,我只会将其称为out
或processOut
。
相关问题
- 1. 推迟BufferedWriter.write到另一个线程
- 2. 使用索引遍历Java地图
- 3. 的Java,MalformedChunkCodingException
- 4. Android to JAVA SSL
- 5. 使用java的流密码
- 6. 如何将stdin重定向到java Runtime.exec?
- 7. php java android POST方法问题
- 8. java - 从文本文件读取散列表
- 9. 如何使用Java中的FileWriter写入新行?
- 10. Java,Java VM,Java平台,
- 11. Java Servlet和Java
- 12. 的Java:从Java
- 13. Java Wild java javax.ejb.EJBException
- 14. java中的java beans
- 15. 使用Java的Java
- 16. Java的含义.java〜
- 17. Java - NoClassDefinitionFoundError for Java Class
- 18. Java,FileWriter(文件,true)不可追加到文件
- 19. 有缺陷的密码凯撒java程序
- 20. (java)
- 21. Java
- 22. 的Java SE和Java EE
- 23. Java的Java中多比较
- 24. java堆满Java finalize()调用
- 25. 从Java GUI到Java Web
- 26. “java”成功,“java emmarun”失败
- 27. spring rmi java 1.4和java 1.5
- 28. Java Web Start与Java Applet
- 29. 原生Java到Android Java(JsonPath)
- 30. 递归反向Java Java
为什么,你得到一个错误? –
该进程应该从stdin中主动读取,这将清除缓冲区中的空间。正如马丁所说,你在这里遇到了一个问题吗? – dimo414
不是,但只是为了积极主动,因为我得到了一个代码审查反馈,说如果没有人阅读它,写入将被阻止 – JennyS