java - InputStream 和 ByteArrayInputStream 有什么区别?

标签 java inputstream jnlp bytearrayinputstream

以下代码摘自java核心卷一的java web start章节

     ByteArrayOutputStream out = new ByteArrayOutputStream();
     PrintStream printOut = new PrintStream(out);
     printOut.print(panel.getText());
     //panel.getText() return a String
     InputStream data = new ByteArrayInputStream(out.toByteArray());
     FileSaveService service = (FileSaveService) ServiceManager
           .lookup("javax.jnlp.FileSaveService");
     service.saveFileDialog(".", new String[] { "txt" }, data, "calc.txt");

创建了四个对象,流被重定向了三次。 有没有其他方法可以使用 jnlp api 将数据写入文件? InputStream 和 ByteArrayInputStream 有什么区别?

最佳答案

ByteArrayInputStreamByteArrayOututStream 是内存中的实现,当您想要以类似流的方式将数据临时存储在内存中,然后再将其抽出某个地方时使用否则。

例如,假设您有一个需要输入流作为参数的方法,例如

public Document parseXml(InputStream in) // build an XML document from data read in

但是你想发送一个字符串的内容给它。然后,您将使用 ByteArrayInputStream 并用您的字符串内容填充它,并将 ByteArrayInputStream 传递给该方法。


ByteArrayOutputStream 用法的一个示例可能是,如果一个方法写入输出流,但您只想捕获结果并直接获取它。

关于java - InputStream 和 ByteArrayInputStream 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13656004/

相关文章:

java - Java 中实数的良好正则表达式是什么?

java - 简单的正则表达式匹配

java - 如何让@BeforeClass 在 Spring TestContext 加载之前运行?

java - Java进程从子进程获取InputStream

java - 是否可以提示或强制用户使用 JNLP 升级他们的 JVM?

java - 如何在 Java 中获取主题级别的 Kafka 指标?

c# - Request.Files[0].InputStream 将其放入线程中时被释放

Java:InputStream.read不等待输入?

java - 如何在 Java 和 JFrame 中使用 selenium 来阻止此错误

java - 升级桌面应用程序上的 Java 版本