實現(xiàn)了Closeable接口的對象可調(diào)用use函數(shù)
use函數(shù)會自動關(guān)閉調(diào)用者(無論中間是否出現(xiàn)異常)
Kotlin的File對象和IO流操作變得行云流水
use函數(shù)內(nèi)部實現(xiàn)也是通過try-catch-finally塊捕捉的方式,所以不用擔心會有異常拋出導致程序退出
close操作在finally里面執(zhí)行,所以無論是正常結(jié)束還是出現(xiàn)異常,都能正確關(guān)閉調(diào)用者
java
FileInputStream fis = null;
DataInputStream dis = null;
try {
fis = new FileInputStream("/home/test.txt");
dis = new DataInputStream(new BufferedInputStream(fis));
String lines = "";
while((lines = dis.readLine()) != null){
System.out.println(lines);
}
} catch (IOException e){
e.printStackTrace();
} finally {
try {
if(dis != null)
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(fis != null)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
- kotlin
File("/home/test.txt").readLines()
.forEach { println(it) }