国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 完美解決java讀取大文件內存溢出的問題

完美解決java讀取大文件內存溢出的問題

2020-12-13 20:10echoty Java教程

下面小編就為大家帶來一篇完美解決java讀取大文件內存溢出的問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1. 傳統方式:在內存中讀取文件內容

讀取文件行的標準方式是在內存中讀取,Guava 和Apache Commons IO都提供了如下所示快速讀取文件行的方法:

?
1
2
Files.readLines(new File(path), Charsets.UTF_8);
FileUtils.readLines(new File(path));

實際上是使用BufferedReader或者其子類LineNumberReader來讀取的。

傳統方式的問題: 是文件的所有行都被存放在內存中,當文件足夠大時很快就會導致程序拋出OutOfMemoryError 異常。

問題思考:我們通常不需要把文件的所有行一次性地放入內存中,相反,我們只需要遍歷文件的每一行,然后做相應的處理,處理完之后把它扔掉。所以我們可 以通過行迭代方式來讀取,而不是把所有行都放在內存中。

2. 大文件讀取處理方式

不重復讀取與不耗盡內存的情況下處理大文件:

(1)文件流方式:使用java.util.Scanner類掃描文件的內容,一行一行連續地讀取

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
FileInputStream inputStream = null;
Scanner sc = null;
try {
 inputStream = new FileInputStream(path);
 sc = new Scanner(inputStream, UTF-8);
 while (sc.hasNextLine()) {
  String line = sc.nextLine();
  // System.out.println(line);
  }
}catch(IOException e){
  logger.error(e);
}finally {
  if (inputStream != null) {
  inputStream.close();
  }
  if (sc != null) {
    sc.close();
   }
}

該方案將會遍歷文件中的所有行,允許對每一行進行處理,而不保持對它的引用。總之沒有把它們存放在內存中!

(2)Apache Commons IO流:使用Commons IO庫實現,利用該庫提供的自定義LineIterator

?
1
2
3
4
5
6
7
8
9
LineIterator it = FileUtils.lineIterator(theFile, UTF-8);
try {
 while (it.hasNext()) {
 String line = it.nextLine();
 // do something with line
  }
} finally {
 LineIterator.closeQuietly(it);
}

 該方案由于整個文件不是全部存放在內存中,這也就導致相當保守的內存消耗。

以上這篇完美解決java讀取大文件內存溢出的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/echoty/p/7326827.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产视频 | 欧美日韩一区二区在线观看 | 国产一区二区三区 | 丁香综合 | 九一视频在线观看 | 亚洲国产精品成人 | 山岸逢花在线观看 | 我和我的祖国电影在线观看免费版高清 | 国产一区影院 | 久久综合影院 | 亚洲综合二区 | 精品国产欧美一区二区三区成人 | 99国产精品 | 国产日产精品一区二区三区四区 | 国产一区二区三区不卡在线观看 | 国产精品网站在线观看 | 一区二区三区久久 | 亚洲成人久久久久 | 97久久久 | 亚洲一区二区三区在线免费观看 | 久久久久成人精品免费播放动漫 | 色www精品视频在线观看 | 日本欧美在线 | 亚洲国产精品va在线看黑人 | 黄毛片 | 国产成人av在线 | 精品视频免费观看 | 午夜色电影 | 亚洲电影在线观看 | 成人免费网站在线 | 美日韩精品视频 | 国产成人av一区 | 亚洲aⅴ天堂av在线电影软件 | 国产精品久久久久久久美男 | 色在线视频播放 | 久毛片| 久久99国产精品久久99果冻传媒 | 欧美一区二区三区的 | 含羞草www网址进入在线观看 | 国产精品99精品久久免费 | 日韩色av|