Java还提供了垃圾处理的机制,在类中一些不用的类实例,在置为null之后,根据系统的调度,会在内存紧张的时候进行删除。
代码如下:
import java.io.Fileimport java.io.FileInputStream
import java.io.FileOutputStream
import java.io.IOException
public class App {
public static void main(String[] args) throws IOException {
// 第一种方式,稍嫌麻烦
FileOutputStream outputStream = null
try {
outputStream = new FileOutputStream(new File("data.txt"))
outputStream.write(new byte[] { 0x11, 0x22, 0x33, 0x44 })
// 在这里可以直接 return, 会调用 finally 中的代码
} finally {
if (outputStream != null) {
try {
outputStream.close()
} catch (IOException e) {
}
}
}
// 第二种方式,比较简洁,不用显式调用 close(), 会自动调用 close()
try (FileInputStream inputStream = new FileInputStream(new File("data.dat"))) {
byte[] buf = new byte[4]
inputStream.read(buf)
// 可以在这里调用 return ,在这个{}代码块结束时,close 会自动执行,
}
}
}