【发布时间】:2019-07-31 07:52:31
【问题描述】:
我有一个 Java 程序,读取一个文件(其中包含来自本地语言的字符),并填充一个字符串。当程序直接运行时,它工作正常。
但是当从 Python 调用相同的程序时,它无法填充字符串。
public static void main(String[] args) {
File inputFile = new File("input.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(inputFile),"UTF-8"));
string output = "";
while ((line = br.readLine()) != null) {
// This block never hits when invoked by python. It works fine when java program runs directly.
output +=line+" ";
}
...
}
我从 Python 调用它如下
cmd = ['java', java_class]
subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
任何输入?顺便说一句,我正在使用 Atom IDE,不确定这是否有什么不同。
【问题讨论】:
-
您遇到的错误是什么?
-
没有错误。只是我的输出为空而不是文件内容
-
@TheRoy,感谢分享链接。但不确定这个链接是否有帮助,它只是告诉如何在 python 中读取 java 程序的输出。我能够从 python 调用 java 应用程序。问题是当从 python 调用 java 应用程序时,它无法读取文件的内容,当 java 应用程序直接运行时,文件内容是完全可读的。
标签: java python python-3.x