我一直在我的頭撞牆對此已有相當一段時間,真的很感激一些幫助。
我有2個流,我想要的是從一個流中排除元素,如果他們在另一個流中。
我正在嘗試編寫一個程序來查找所有音頻文件,然後將它們寫入文件。你給它一個文件夾來檢查,並找到該文件夾中的所有音頻文件,並將它們全部寫入文件。這部分工作很好。如果你再次給它同一個文件夾,問題就會起作用,我希望能夠排除已經存在的音頻文件。這是有問題的代碼:
有一些真正的麻煩與流和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的東西,它在哪裏宣佈?很明顯,無關緊要的事情是你的問題的一部分。也許它阻止了某些東西?也許這是以一種奇怪的方式失敗? Catch Throwable而不僅僅是檢查的異常。如果有什麼奇怪的事情發生,你會想知道。下一步是連接一個調試器,並在noneMatch方法內部找出它正在做什麼。 –