java processbuilder打开一个用于读取数据的文本文件

时间:2015-04-14 21:08:18

标签: java c process

我有一个文件可以说" test.txt",(与java程序相同的目录),上面有数字,如下所示。我的目标是启动一个进程构建器,从文件中读取数据,然后我将它绘制到java JPanel。

  1. 我理解从文本文件中读取数据,我需要读取输入流。 问题1:我如何逐行阅读?因此,在读取第一行后,流程构建器将转到下一行?

  2. 我对如何真正启动这样的流程感到困惑。即 Q2:如何使用processBuilder打开文本文件?

  3. 对于第二个问题,我尝试过这样的事情。屏幕上没有任何事情发生,因为我没有指示任何事情发生,但它是否在正确的轨道上?

       //get data back
        public void returnData ()
        {   
        try {
        ProcessBuilder pb;
        pb = new ProcessBuilder("test.txt");
        Process runCode = pb.start();
        runCode.waitFor();
        }
        catch (IOException | InterruptedException exp) {
            System.out.println(exp);
        }
        }
    

    的test.txt

    0
    1
    3
    5
    2
    3
    

1 个答案:

答案 0 :(得分:0)

您需要一个程序将文件发送到标准输出,例如 对于Windows:

type filename

对于Unix

cat filename

然后使用ProcessBuilder执行此命令 InputStreamReader用于读取流,BufferedReader用于逐行读取。

BufferedReader in
       = new BufferedReader(new InputStreamReader(processstream));
in.readLine ();

当基本的Java IO以便携方式执行时,这是一种非常依赖于平台的方法。

FileReader访问文件,BufferedReader逐行读取。

BufferedReader in
             = new BufferedReader(new FileReader("foo.in"));
in.readLine ();