私はここにファイルを書き込もうとしていますが、コードです:エラー:報告されない例外IOException;キャッチまたはストリームにスローされるように宣言されなければなりません()
public static void writeFile(File f, int n) throws IOException{
//reads n teams which go to next phase
try(BufferedWriter writer = new BufferedWriter(new FileWriter(f))){
table.stream()
.sorted()
.limit(n)
.forEachOrdered(x->writer.write(x.getName()));
/*for(int i=0;i<n;i++){
writer.write(table.get(i).getName());
writer.newLine();
}*/ this if uncommented works great!
}catch (IOException e){
e.printStackTrace();
}
}
と私がコンパイルしようとすると、私はこのエラーを取得:
Counter.java:123:error:報告されない例外IOException;キャッチされるか、スローされると宣言されなければならない。 .forEachOrdered(x-> writer.write(x.getName()));私が疑問に思うのは、メソッドでIOExceptionを宣言しても、私が.forEachOrdered()(Consumer)の中で定義したメソッドが使用できないため、.forEachOrdered()を使用しています。それを宣言しない?私は明確であるかどうかはわかりませんが、コードを見るだけで何かを推測することができます。ありがとう。
注:この表はチームで宣言された静的リストです。
普通の 'for'ループをやって何が問題になっていますか?シンプルで、はっきりしていて、既に働いています。 –