Java 通过python脚本在Eclipse中创建了一个新文件,并试图在同一程序中访问它,但该文件为空
我使用字符串cmd[]构建了一个脚本,创建了一个名为gene_Counts2.text的文件,它成功地创建了这个文件,并且填充了大量文本 但是,当我使用filereader和bufferreader迭代文本并打印它时,不会发生这种情况,因为代码中的line1为null 然而,一旦程序运行完毕,我尝试遍历文件,它就可以工作了 那么,如何在不重新启动程序的情况下访问文件内容呢?您应该使用Runtime.getRuntime.execcmd.waitFor;等待命令完成 另外,您似乎正在创建一个FileReader fileReader2,您从未使用过它,您最好使用它:Java 通过python脚本在Eclipse中创建了一个新文件,并试图在同一程序中访问它,但该文件为空,java,python,eclipse,filereader,restart,Java,Python,Eclipse,Filereader,Restart,我使用字符串cmd[]构建了一个脚本,创建了一个名为gene_Counts2.text的文件,它成功地创建了这个文件,并且填充了大量文本 但是,当我使用filereader和bufferreader迭代文本并打印它时,不会发生这种情况,因为代码中的line1为null 然而,一旦程序运行完毕,我尝试遍历文件,它就可以工作了 那么,如何在不重新启动程序的情况下访问文件内容呢?您应该使用Runtime.getRuntime.execcmd.waitFor;等待命令完成 另外,您似乎正在创建一个Fil
String[] cmd = {
"/bin/bash",
"-c",
"python count_freqs.py gene.train > gene_counts2.txt",
};
Runtime.getRuntime().exec(cmd);
bufferReader.close();
fileReader.close();
FileReader fileReader2 = new FileReader("/home/mordor/workspace/GeneNamesInBiologicalText/gene_counts2");
String newLine ;
try (BufferedReader br = new BufferedReader(new FileReader("/home/mordor/workspace/GeneNamesInBiologicalText/gene_counts2.txt"))) {
String line1;
while ((line1 = br.readLine()) != null) {
System.out.println(line1);
}
}*/
您还应该使用ProcessBuilder。嘿,谢谢泰特斯,这很有效!是的,关于FileReader,我对代码进行了大量编辑,以找到一个解决方案,但我忘了删除它,但感谢您指出这一点!
String[] cmd = {
"/bin/bash",
"-c",
"python count_freqs.py gene.train > gene_counts2.txt",
};
Runtime.getRuntime().exec(cmd).waitFor(); // wait until command gets terminated
bufferReader.close();
fileReader.close();
FileReader fileReader2 = new FileReader("/home/mordor/workspace/GeneNamesInBiologicalText/gene_counts2.txt"); // never used, repair line
String newLine; // coding properly
try (BufferedReader br = new BufferedReader(new FileReader("/home/mordor/workspace/GeneNamesInBiologicalText/gene_counts2.txt"))) {
String line1;
while ((line1 = br.readLine()) != null) {
System.out.println(line1);
}
}*/