首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 使用 LINQ 快速將大型文字檔按行數分割為多個小檔案

     編輯:程式設計綜合問答

核心代碼


string[] lines = File.ReadAllLines("big.txt"); // 一次性讀入記憶體,適合 < 100MB
int batchSize = 1000;
for (int i = 0; i < lines.Length; i += batchSize) {
    var batch = lines.Skip(i).Take(batchSize);
    File.WriteAllLines($"part_{i/batchSize + 1}.txt", batch);
}

大檔案優化(流式處理)


int count = 0, fileNo = 1;
using (var reader = File.OpenText("big.txt"))
using (var writer = File.CreateText($"part_{fileNo}.txt")) {
    string line;
    while ((line = reader.ReadLine()) != null) {
        writer.WriteLine(line);
        if (++count == batchSize) {
            count = 0;
            writer.Dispose();
            writer = File.CreateText($"part_{++fileNo}.txt");
        }
    }
}

說明

  • LINQ 寫法簡潔,適合中小檔案。
  • 流式寫法記憶體佔用恆定,適合 GB 級大檔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved