Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
在Java中回显find to BufferedReader的结果_Java_Bash - Fatal编程技术网

在Java中回显find to BufferedReader的结果

在Java中回显find to BufferedReader的结果,java,bash,Java,Bash,我试图从运行时执行中获取输入流。但是下面的代码在getInputStream()中没有提供任何信息。我试图获取父目录“DPATH”中的文件数及其子目录下的文件数。下面的代码给了我一个空的输入流。我想要一个数字,就像在bash中使用命令find/mypath-typef|wc-l时一样 当Java库已经包含简单的功能,而不需要启动外部进程的复杂性和不可靠性时,为什么要使用find?看看java.nio.file.Files类。它提供您所需的一切,而无需调用任何外部流程。查看文件#walk(…)和文

我试图从运行时执行中获取输入流。但是下面的代码在getInputStream()中没有提供任何信息。我试图获取父目录“DPATH”中的文件数及其子目录下的文件数。下面的代码给了我一个空的输入流。我想要一个数字,就像在bash中使用命令find/mypath-typef|wc-l时一样


当Java库已经包含简单的功能,而不需要启动外部进程的复杂性和不可靠性时,为什么要使用
find
?看看
java.nio.file.Files
类。它提供您所需的一切,而无需调用任何外部流程。查看
文件#walk(…)
文件#walkFileTree(…)
。编写一个
wc
等价物只需几行代码,或者只需查看java.io.File类即可。它有一个名为list()的方法,该方法返回File类型的数组。在筛选出目录时,您可以从中确定有多少文件项。@JimGarrison,因为我需要知道如何检索inputstream。我将查看您建议的解决方案,但如果我能够实现上述内容,这将非常有帮助。路径
/DPATH
是否确实存在?您是否在IDE调试器中仔细检查了这段代码,以确保进程实际启动并且没有失败?
find
是否位于指定给子流程的路径上?是否需要指定
find
命令的完整路径?@JimGarrison,好的,我正在查看Files.walk()和Files.copy。我对使用NIOAPI的副本很感兴趣,但是在复制的过程中是否有捕获复制的文件数量的方法呢。这就是为什么我尝试使用目录中的文件数,以便在复制时使用
sed
命令获取文件数,以显示进度条复制过程。因此,我需要数字、总大小和要复制的数字来获得商。当Java库已经包含简单的功能,而不需要启动外部进程的复杂性和不可靠性时,为什么要使用
find
?看看
java.nio.file.Files
类。它提供您所需的一切,而无需调用任何外部流程。查看
文件#walk(…)
文件#walkFileTree(…)
。编写一个
wc
等价物只需几行代码,或者只需查看java.io.File类即可。它有一个名为list()的方法,该方法返回File类型的数组。在筛选出目录时,您可以从中确定有多少文件项。@JimGarrison,因为我需要知道如何检索inputstream。我将查看您建议的解决方案,但如果我能够实现上述内容,这将非常有帮助。路径
/DPATH
是否确实存在?您是否在IDE调试器中仔细检查了这段代码,以确保进程实际启动并且没有失败?
find
是否位于指定给子流程的路径上?是否需要指定
find
命令的完整路径?@JimGarrison,好的,我正在查看Files.walk()和Files.copy。我对使用NIOAPI的副本很感兴趣,但是在复制的过程中是否有捕获复制的文件数量的方法呢。这就是为什么我尝试使用目录中的文件数,以便在复制时使用
sed
命令获取文件数,以显示进度条复制过程。所以我需要数字,总大小和被复制的数字来得到一个商。
String line = "";
String command = "find /DPATH -type f | wc -l"
Process pr = Runtime.getRuntime().exec(command);
BufferedReader buff = new BufferedReader(new InputStreamReader( pr.getInputStream()));

while( ( line = buff.readLine() ) != null  && !isCancelled() )
   {
      count = Integer.parseInt(line);
   }

 if (!isCancelled())
    {
      pr.waitFor();
      buff.close();
      pr.destroy();
    }