以下代码摘自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 有什么区别?
最佳答案
ByteArrayInputStream
和 ByteArrayOututStream
是内存中的实现,当您想要以类似流的方式将数据临时存储在内存中,然后再将其抽出某个地方时使用否则。
例如,假设您有一个需要输入流作为参数的方法,例如
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/