通过python脚本在Eclipse中创建了一个新文件,并尝试在同一个程序中访问它,但该文件为空

2024-06-02 13:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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);
            }
        }*/

我使用String cmd[]构建了一个脚本,创建了一个名为gene\u Counts2.text的文件,它成功地完成了这个任务,并且填充了大量文本

但是当我使用filereaderbufferreader迭代文本并打印它时,不会发生这种情况,因为代码的第1行是空的

然而,一旦程序运行完毕,我就尝试遍历文件,它就可以工作了

那么,如何在不重新启动程序的情况下访问文件的内容呢


Tags: 文件txtcmdhomenewclosestringworkspace
2条回答

最好使用的代码:

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);
        }
    }*/

您还应该使用ProcessBuilder

您应该使用Runtime.getRuntime().exec(cmd).waitFor();等待命令完成

而且,似乎您正在创建一个从未使用过的FileReaderfileReader2

相关问题 更多 >