首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在初始化时在类的构造函数调用中容纳InputStream对象的InputStream对象?

如何在初始化时在类的构造函数调用中容纳InputStream对象的InputStream对象?
EN

Stack Overflow用户
提问于 2015-03-18 07:02:35
回答 2查看 1.3K关注 0票数 2

1为myDocDesigner创建和初始化对象

以下是带有结构器的myDocDesignerclass的定义:

代码语言:javascript
复制
public myDocDesigner(customDocFormat doc, InputStream imageStream, int page) throws IOException 
{
    docImageStream(imageStream);
    calculatePageSize(doc, page);
}

2来自generateOutputDoc()myFileManager类,如下所示:

代码语言:javascript
复制
jMyDocDesigner = createObject("java"
                            ,"myPackage.visible.myDocDesigner")
                            .init(jMyLocalDoc ,myImageFileStream,1);

3.属性定义为:

代码语言:javascript
复制
/* load document : `customDocFormat` isn't only a format it also returns the document object of the type `customDocFormat` to be used in #1 & #2 above */

    //document & image file paths
    lStrInputFilePath = "#expandPath('sampledocs')#\mySampleDoc.pdf";
    lStrImageFilePath = "#expandPath('sampledocs')#\myPlacementLogo.png";
    //java FileInputStream object for the PDF file
    lOsPDFInput = CreateObject("java","java.io.FileInputStream")
                     .init(CreateObject("java","java.io.File").init(lStrInputPDFfile));
    jMyLocalDoc = createObject("java","myPackage.docModel.customDocFormat");
    jMyLocalDoc.load(lOsPDFInput);
    //FileInputStream Object for image
    lSignImage  = CreateObject("java","java.io.FileOutputStream")
                      .init(CreateObject("java","java.io.File").init(lStrImageFilePath));

4问题:

为了让事情变得简单明了:我已经尽了我对Java知识的最大努力,尝试了所有可能的选择。但我做不到这件事。这部分代码是基于某些内部需求和约定来操作文档的项目的一部分。每件事情都工作得很完美.我逐步调试了整个代码,但这一部分阻碍了一切.我尝试了4-5个变体来将FileInputStream对象转换为InputStream,但是每次我得到这个错误,这是可以理解的,因为它不接受我向它抛出的参数:

我更新了我的问题,因为我发现问题的原因在于FileInputStream对象本身,正如在他的回答中指出的那样,我初始化了这个对象,结果我没有走正确的道路,多亏了他.我能够继续我的代码,下面是我的代码中唯一阻止项目完成的bug :(:

下面是我所处理的PDDocument & PDDocumentInformation类的Java文件,其中我得到了不正确的no。文档加载后的页面:到这里去

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-27 09:20:43

找到了,工作得很好!myDocDesigner的参数签名接受输入和输出文档的FileInputStreamOutputStream对象。整个问题是我缺乏java知识,我承认,但是多亏了这个小组,经过一些研究和测试,我做了一些改变,神奇地起了作用。很高兴因为我现在可以继续前进了。谢谢的帮助。

代码语言:javascript
复制
        fis = createObject("java", "java.io.FileInputStream");
        lOsPDFInput = createObject("java", "java.io.BufferedInputStream").init(fis.init(arguments.lStrInputPDFfile));
        fos = createObject("java", "java.io.FileOutputStream");
        lOsPDFOutput = createObject("java", "java.io.BufferedOutputStream").init(fos.init(arguments.lStrOutputPDFfile));
        fimgs = createObject("java", "java.io.FileInputStream");
        lSignImage = createObject("java", "java.io.BufferedInputStream").init(fimgs.init(arguments.lStrSignImageFile));
        fkeys = createObject("java", "java.io.FileInputStream");
        lKeyStoreFileStream = createObject("java", "java.io.BufferedInputStream").init(fkeys.init(arguments.lStrKeyStoreFilePath));
票数 1
EN

Stack Overflow用户

发布于 2015-03-18 07:18:58

你可以试试这个:

代码语言:javascript
复制
lOsPDFInputStream = CreateObject("java","java.io.InputStream");
lOsPDFInputStream = lOsPDFInput;

现在尝试再次传递lOsPDFInput,因为现在它是InputStream的一个对象。

您还可以尝试将FileInputStream转换为InputStream

代码语言:javascript
复制
  public void givenUsingPlainJava_whenConvertingFileToInputStream_thenCorrect() 
  throws IOException {
    File initialFile = new File("src/main/resources/sample.txt");
    InputStream targetStream = new FileInputStream(initialFile);
}

参考文献:http://www.baeldung.com/convert-file-to-input-stream

如果对你有用的话请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29115943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档