Java8 新的 try-with-resources 语句,自动资源释放
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Java8 新的 try-with-resources 语句,自动资源释放
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                讀取文件后需要釋放資源,對于占用內存比較大的,非常重要;
(1)讀取文件內存占用較多的優化方式: 一次讀取部分處理完繼續讀取,可以有效的減少內存的占用;
 使用RandomAccessFile可以從文件的任意位置讀取,優勢超級明顯;
 raf.seek(filePointer); 可以設置從文件的哪個指針位置讀取,很方便高效;
(2)網絡和帶寬利用率不高的優化方式: 可以通過多線程發送請求更多的接口,或者增加每次接口請求的數據量,單個———>批量;
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中關閉流
try {raf = new RandomAccessFile(filePath, "r");pgrLength = raf.length();
} catch (FileNotFoundException e) {e.printStackTrace();
} catch (IOException e) {e.printStackTrace();
} finally {// 關閉文件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
總結
以上是生活随笔為你收集整理的Java8 新的 try-with-resources 语句,自动资源释放的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: SpringBoot配置postgre多
- 下一篇: 使用OpenCV,Python进行图像哈
