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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搜索重复代码_通过MappedByteBuffer搜索大文件

發布時間:2025/4/17 编程问答 78 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搜索重复代码_通过MappedByteBuffer搜索大文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

此應用程序對于在不適合BufferedReader、files.readAllLines()、files.lines()和Scanner的大文件中進行搜索非常有用。

我們將在這里討論的解決方案基于Java NIO.2、MappedByteBuffer和FileChannel。此解決方案從給定文件上的文件通道打開內存映射字節緩沖區(mapped byte buffer)。我們遍歷獲取的字節緩沖區并查找與搜索字符串的匹配項(此字符串轉換為字節byte[],然后逐字節進行搜索)。

對于相對較小的文件,將整個文件加載到內存中會更快(如果RAM允許的話)。對于大型/大型文件,以塊(例如,5 MB的塊)的形式加載和處理文件會更快。加載塊后,必須計算搜索字符串的出現次數。我們存儲結果并將其傳遞給下一個數據塊。我們重復這個直到整個文件被遍歷。

讓我們來看看這個實現的核心代碼(查看與本書捆綁在一起的源代碼以獲得完整的代碼):

這個解決方案非常快速,因為文件直接從操作系統的內存中讀取,而不必加載到JVM中。操作在本機級別(稱為操作系統級別)進行。注意,此實現僅適用于UTF-8字符集,但也可以適用于其他字符集。

完整的應用程序在GitHub上可用。

如果您喜歡這篇文章,那么我相信您一定會喜歡Java編碼問題的第6章。本章專門討論Java中的文件/文件夾操作。

這么多大牛的代碼,如果您希望換一個工作,如果您希望換一個工作環境,來來來:

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的搜索重复代码_通过MappedByteBuffer搜索大文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。