Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure中的内存中文件类型对象_Clojure_Java Io - Fatal编程技术网

Clojure中的内存中文件类型对象

Clojure中的内存中文件类型对象,clojure,java-io,Clojure,Java Io,我刚刚开始使用Clojure,我想调用一个Java方法,该方法将输入文件作为参数读取,输出文件作为参数写入。两者似乎都属于java.io.File类型。我想调用的方法是此类中的“parse”: 但是,由于我将重复调用该方法,因此我更喜欢使用内存中的对象,而不是磁盘上的文件 我已成功加载具有以下内容的解析器类实例: (def my_parser (cz.kebrt.html2latex.Parser.)) 我相信我已经成功创建了一个类似于内存文件的对象,可以使用以下命令从中读取: (def i

我刚刚开始使用Clojure,我想调用一个Java方法,该方法将输入文件作为参数读取,输出文件作为参数写入。两者似乎都属于java.io.File类型。我想调用的方法是此类中的“parse”:

但是,由于我将重复调用该方法,因此我更喜欢使用内存中的对象,而不是磁盘上的文件

我已成功加载具有以下内容的解析器类实例:

(def my_parser (cz.kebrt.html2latex.Parser.))
我相信我已经成功创建了一个类似于内存文件的对象,可以使用以下命令从中读取:

(def input-object (java.io.StringBufferInputStream. "this is a test"))
但是,我应该传递什么样的类文件对象来捕获输出?(为了完整起见,我应该提到这个输出文件首先用于构造ParserHandler的实例,然后将其传递给上面创建的解析器。)

谢谢你的建议。

我很确定这个(设计糟糕的)API是为旧版本的软件设计的,它不允许你做你想做的事情。(即,您不能创建内容在内存中的
文件
。这不是类的用途。)

似乎有一个构造函数,您可以将
java.io.File
字符串
传递给该构造函数。后者应该是你想要的


编辑:我认为为您整理一些东西可能很好,因为您似乎来自Python背景(考虑到您反复使用术语“类文件”)
java.io.File
是一个误导性的名称。它实际上更像一条路。例如,如果要检查文件是否存在,您需要执行
(.exists(java.io.file.my/path))
文件
也可以是目录。我知道这很傻,但嘿,这是java。(如果你想知道更多,看看)。这个解析器类真正应该提供的是传递
java.io.Reader
的能力,这就像一个字符序列的抽象视图。在内部,他们将
字符串
选项和
文件
选项转换为
读卡器
,因此他们的设计真的很糟糕,他们不仅接受读卡器,还删掉了中间人。

谢谢你的澄清,D.J.是的,我来自Python。我按照您的建议将svn中的java程序重新安装到Clojure项目中。这个电话现在看起来正确吗?(对我来说,这是一个错误):(cz.kebrt.html2latex.Parser。“这是一个测试”)首先,类被移动到
cz.kebrt.html2latex.Parser.Parser
,其次,我对源代码进行了适当的检查,我不确定它在使用字符串构造时是否符合您的要求。在本例中,它创建了一个默认的ParserHandler,据我所知,它不会向任何地方输出任何内容。我最好的猜测是,他们使用它进行单元测试。我不认为不修改源代码就可以做你想做的事情。如果您确实想修改源代码,只需创建一个新的构造函数,该构造函数接受
字符串
解析器句柄
。不过我不能保证