日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Java8 新的 try-with-resources 语句,自动资源释放

發(fā)布時間:2023/11/27 生活经验 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java8 新的 try-with-resources 语句,自动资源释放 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

讀取文件后需要釋放資源,對于占用內(nèi)存比較大的,非常重要;

(1)讀取文件內(nèi)存占用較多的優(yōu)化方式: 一次讀取部分處理完繼續(xù)讀取,可以有效的減少內(nèi)存的占用;
使用RandomAccessFile可以從文件的任意位置讀取,優(yōu)勢超級明顯;
raf.seek(filePointer); 可以設(shè)置從文件的哪個指針位置讀取,很方便高效;

(2)網(wǎng)絡(luò)和帶寬利用率不高的優(yōu)化方式: 可以通過多線程發(fā)送請求更多的接口,或者增加每次接口請求的數(shù)據(jù)量,單個———>批量;


1. try-with-resources 讀取完文件,自動資源釋放


try (RandomAccessFile raf = new RandomAccessFile(filePath, "r");) {Image image = null;while((image = parseImage(raf)) != null){imageList.add(image);}return imageList;} catch(Exception e){log.error("parse file error, path: {},", path, e);return null;}

2. try catch finally 3件套,finnaly中關(guān)閉流


try {raf = new RandomAccessFile(filePath, "r");pgrLength = raf.length();
} catch (FileNotFoundException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
} finally {// 關(guān)閉文件if (raf != null) {try {raf.close();} catch (IOException e) {log.error("file close error:", e);e.printStackTrace();}}
}

3. 讀取文件時頭上標識 注解

public static void customBufferStreamCopy(String[] args) throws Exception{@Cleanup InputStream in = new FileInputStream(args);@Cleanup OutputStream out = new FileOutputStream(args);byte[] buf = new byte[8192];  		   int i;  while ((i = in.read(buf)) != -1) {  out.write(buf, 0, i);  }  
}

參考:
– https://www.oschina.net/question/12_10706

總結(jié)

以上是生活随笔為你收集整理的Java8 新的 try-with-resources 语句,自动资源释放的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。