java刪除文件中指定行 JAVA怎么實現按行數分割文件?
JAVA怎么實現按行數分割文件?導入java.io文件. *公共類segfile{/***根據需要,直接調用靜態方法start來執行操作*參數:*行是一個文件的行數,int類型*sourcefilep
JAVA怎么實現按行數分割文件?
導入java.io文件. *公共類segfile{/***根據需要,直接調用靜態方法start來執行操作*參數:*行是一個文件的行數,int類型*sourcefilepath是源文件路徑,string類型*targetdirectorypath是文件分段后的目標目錄,字符串類型*——分段后的文件名是索引號(從0開始)加上“”加上源文件名,例如,源文件名是測試.txt,拆分文件名為0u測試.txt,依此類推*/public static void start(int rows,string sourcefilepath,string targetdirectorypath){file Sourcefile=new file(sourcefilepath)file targetfile=new file(targetdirectorypath)if(!sourceFile.exists存在()行
調用上述函數,而不是在原程序中直接讀取的位置。這樣,無論您有n個線程還是一個線程,都不會重復讀取行或不完整的讀取行。
為了充分利用多線程,必須將文件劃分為多個區域,以便每個線程讀取。然后我們需要一個算法來計算每個線程的開始和結束位置。首先,根據配置的線程數和文件的總長度,計算每個線程的平均分配讀取長度。
但是,由于該文件是純文本文件,因此必須按行處理。如果分割點在一條直線的中間,那么直線數據將被分成兩部分,并由兩個線程同時處理。這種情況不可能發生。所以每個區域末尾的字符必須是換行符。第一個區域的開始位置為0,結束位置設置為(文件長度/線程數)。如果結束位置不是換行符,則只能增加1,直到它成為換行符。