Javaを使用してファイルの行数を数えたいのですが、使用するコードは次のとおりです。
String[] wcCommand = new String[]{"/usr/bin/wc","-l" , filePath};
Process wcProcess=Runtime.getRuntime().exec(wcCommand);
wcProcess.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader( wcProcess.getInputStream()));
String numberOfRowsline;
while((numberOfRowsline = bufferedReader.readLine()) != null) {
System.out.print(numberOfRowsline);
}
5000000 行の大きなファイルがある場合、コマンドは間違った番号を返します。なぜこれが起こるのですか?ターミナルから直接コマンドを実行すると、返される値は正しいです。
Java からの出力は次のとおりです。 3288079 /PathToFile
ターミナルからの出力: 5000000 /PathToFile