初始化时如何在对 class 的构造函数调用中为 InputStream 对象容纳一个 FileInputStream 对象?
How to accommodate a FileInputStream object for InputStream object in the constructor call to the class while initializing?
1 为 myDocDesigner
创建和初始化对象:
这里是 myDocDesignerclass
的定义,构造函数为:
public myDocDesigner(customDocFormat doc, InputStream imageStream, int page) throws IOException
{
docImageStream(imageStream);
calculatePageSize(doc, page);
}
2 来自 generateOutputDoc()
在 myFileManager
class 作为:
jMyDocDesigner = createObject("java"
,"myPackage.visible.myDocDesigner")
.init(jMyLocalDoc ,myImageFileStream,1);
3 属性定义为:
/* 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 对象本身,正如 Leigh 在他的回答中指出的那样,结果我没有走正确的路,多亏了他...我能够继续使用我的代码,这是我的代码中唯一阻止项目完成的错误:( :
这是我处理的 PDDocument 和 PDDocumentInformation classes 的 Java 文件,我得到了不正确的编号。通过它加载文档后的页面数:go here
你可以试试这个:
lOsPDFInputStream = CreateObject("java","java.io.InputStream");
lOsPDFInputStream = lOsPDFInput;
现在尝试再次传递 lOsPDFInput
,因为它现在是 InputStream
的对象。
您也可以尝试将 FileInputStream
转换为 InputStream
:
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
让我知道它是否适合你。
找到了,完美! myDocDesigner
的参数签名接受输入和输出文档的 FileInputStream
和 OutputStream
对象。整个问题是我缺乏 java 知识,我承认这一点,但多亏了这个小组,经过一些研究和测试,我做了一些改变,它神奇地起作用了。真的很高兴,因为我现在可以继续前进了。感谢 Leigh 的帮助。
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 为 myDocDesigner
创建和初始化对象:
这里是 myDocDesignerclass
的定义,构造函数为:
public myDocDesigner(customDocFormat doc, InputStream imageStream, int page) throws IOException
{
docImageStream(imageStream);
calculatePageSize(doc, page);
}
2 来自 generateOutputDoc()
在 myFileManager
class 作为:
jMyDocDesigner = createObject("java"
,"myPackage.visible.myDocDesigner")
.init(jMyLocalDoc ,myImageFileStream,1);
3 属性定义为:
/* 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 对象本身,正如 Leigh 在他的回答中指出的那样,结果我没有走正确的路,多亏了他...我能够继续使用我的代码,这是我的代码中唯一阻止项目完成的错误:( :
这是我处理的 PDDocument 和 PDDocumentInformation classes 的 Java 文件,我得到了不正确的编号。通过它加载文档后的页面数:go here
你可以试试这个:
lOsPDFInputStream = CreateObject("java","java.io.InputStream");
lOsPDFInputStream = lOsPDFInput;
现在尝试再次传递 lOsPDFInput
,因为它现在是 InputStream
的对象。
您也可以尝试将 FileInputStream
转换为 InputStream
:
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
让我知道它是否适合你。
找到了,完美! myDocDesigner
的参数签名接受输入和输出文档的 FileInputStream
和 OutputStream
对象。整个问题是我缺乏 java 知识,我承认这一点,但多亏了这个小组,经过一些研究和测试,我做了一些改变,它神奇地起作用了。真的很高兴,因为我现在可以继续前进了。感谢 Leigh 的帮助。
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));