私はかなり長い間、これについて壁に頭を打っていて、本当に助けに感謝しています。
私は2つのストリームを持っています、そして、それらが他のストリームにある場合、1つのストリームから要素を除外することです。
すべてのオーディオファイルを検索してファイルに書き込むプログラムを作成しようとしています。あなたはそれを確認するフォルダを与え、それはそのフォルダ内のすべてのオーディオファイルを見つけてそれらをすべてファイルに書き込む。その部分は素晴らしい作品です。この問題は、同じフォルダにもう一度入力した場合に発生します。既に存在するオーディオファイルを除外したいと考えています。ここで問題のコードです:
ストリームとnoneMatchで実際に問題が発生しました
Stream<Path> s = Files.walk(folder.toPath()).filter(p -> isAudio(p));
は、その後isAudio(パスP)方法:
try
{
if (Files.probeContentType(p).startsWith("audio"))
{
if (PS != null)
{
System.out.println("boo");
System.out.println(PS.noneMatch(t -> t.equals(p.toString())));
System.out.println("boo2");
}
return true;
}
}
catch (Exception e) {System.err.println(e); }
return false;
PSは私の第二の流れであり、それがファイルから読み込ま。私はそれを試して、それは正しいです。私の問題は、noneMatchの結果は印刷されず、 "boo2"は決して表示されないということです。それは毎回スキップされます。それは "falseを返す"にジャンプします。すべての時間と私は完全に答えが失われています。してください、私が得ることができるどんな助けも大いに感謝されるでしょう!
このPSのことは何ですか、それはどこに宣言されていますか?明らかに、それがマッチしていないことがあなたの問題の一部です。多分何かを妨害しているのだろうか?たぶん奇妙なやり方で失敗しているのだろうか?チェック例外の代わりにThrowableをキャッチします。何か変なことが起こっているなら、あなたは知りたいと思うでしょう。次のステップでは、デバッガを接続して、noneMatchメソッドの内部を踏んで、何をしているのかを調べます。 –