示例

import java.io.BufferedInputStream;
import java.util.Scanner;
import java.io.FileReader;

public class ClassA {{
public void method(){
BufferedInputStream b = null;
Scanner s = null;
try {
b = new BufferedInputStream(new FileInputStream("file.txt"));
s = new Scanner(new BufferedReader(new FileReader("file2.txt")));
}
finally {
b.close();
}
}
}


解决方案
在 finally 方法中,应该关闭所有打开的流

import java.io.BufferedInputStream;
import java.util.Scanner;
import java.io.FileReader;

public class ClassA {
public void method(){
BufferedInputStream b = null;
Scanner s = null;
try {
b = new BufferedInputStream(new FileInputStream("file.txt"));
s = new Scanner(new BufferedReader(new FileReader("file2.txt")));
}
finally {
b.close();
s.close();
}
}
}