gpt4 book ai didi

java - InputStream 和 ByteArrayInputStream 有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:47 33 4
gpt4 key购买 nike

以下代码摘自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/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com