C# 高效加載txt文件內容

在 C# 中,高效加載 TXT 文件內容可以通過多種方法實現,具體方法的選擇取決于文件的大小和讀取需求。以下是一些常用的方法:

1. 使用 `File.ReadAllText`

如果文件比較小,并且你希望一行一行地讀取整個內容,可以使用 `File.ReadAllText` 方法:

using System;
using System.IO;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "yourfile.txt";
? ? ? ? string content = File.ReadAllText(filePath);
? ? ? ? Console.WriteLine(content);
? ? }
}

2. 使用 `File.ReadAllLines`

如果你想將文件的每一行都作為一個字符串存儲在數組中,可以使用 `File.ReadAllLines`:

using System;
using System.IO;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "yourfile.txt";
? ? ? ? string[] lines = File.ReadAllLines(filePath);
? ? ? ??
? ? ? ? foreach (var line in lines)
? ? ? ? {
? ? ? ? ? ? Console.WriteLine(line);
? ? ? ? }
? ? }
}

3. 使用 `StreamReader`

如果你處理的是較大的文件,使用 `StreamReader` 可以逐行讀取,這樣可以節省內存并提高性能:

using System;
using System.IO;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "yourfile.txt";
? ? ? ??
? ? ? ? using (StreamReader reader = new StreamReader(filePath))
? ? ? ? {
? ? ? ? ? ? string line;
? ? ? ? ? ? while ((line = reader.ReadLine()) != null)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Console.WriteLine(line);
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

4. 使用 `FileStream` 和 `StreamReader`

對于需要更底層控制的情況,可以使用 `FileStream` 結合 `StreamReader`:

using System;
using System.IO;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "yourfile.txt";

? ? ? ? using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
? ? ? ? using (StreamReader reader = new StreamReader(fs))
? ? ? ? {
? ? ? ? ? ? string line;
? ? ? ? ? ? while ((line = reader.ReadLine()) != null)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Console.WriteLine(line);
? ? ? ? ? ? }
? ? ? ? }
? ? }
}

性能考慮

????????對于較小的文件,`File.ReadAllText` 和 `File.ReadAllLines` 方法會非常方便且高效。

????????對于較大的文件,使用 `StreamReader` 是一個更佳的選擇,因為它不會一次性將整個文件讀入內存,而是逐行讀取,避免了內存高峰。

????????如果你需要在讀取時對每一行進行處理,可以結合 `StreamReader` 進行流式處理。

以上是 C# 中高效加載 TXT 文件內容的幾種常見方法,根據您的需求選擇合適的方式即可。

如果您喜歡此文章,請收藏、點贊、評論,謝謝,祝您快樂每一天。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87183.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87183.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87183.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

(2)pytest執行用例的規則

1. 簡介 今天主要學習一下pytest的執行用例的規則。 2. 通過help幫助查看pytest如何使用 .查看pytest命令行參數,可以用pytest -h 或pytest --help查看 3. 用例設計原則 文件名以test_*.py文件和*_test.py以test_開頭的函數以Test開頭的類以test_開頭的方法所有的…

InnoDB數據頁

導讀: 我們已經知道了頁是數據庫存儲的基本單位,知道了一條行記錄的存儲格式是怎樣的,當數據越來越多時,那一條條行記錄具體又是怎么在頁中被組織起來的呢? 一、InnoDB數據頁結構 二、總結 1、一條條行數據是如何在數…

世賽背景下,中職物聯網應用與服務賽項實訓解決方案

一、世賽背景與物聯網應用賽項概述 1.1 世賽發展歷程及對中職教育的影響 世界技能大賽(WorldSkills Competition,簡稱世賽)自1950年創立以來,已經成為全球范圍內展示職業技能水平的重要賽事。截至2024年,世賽已成功舉…

【攻防篇】解決:阿里云docker 容器中自動啟動xmrig挖礦-- 實戰

文章目錄 場景一、問題二、原因三、解決方案1、控制臺處理2、 [清除與防護](https://blog.csdn.net/ladymorgana/article/details/148921668?spm1001.2014.3001.5501)1. 緊急處理:停止挖礦進程2. 清理被感染的容器3. 防護措施:防止再次被入侵4. 排查入侵…

飛算智造JavaAI:智能編程革命——AI重構Java開發新范式

文章目錄 引言:當傳統Java開發遇上AI一、技術架構解析1.1 核心架構圖1.2 關鍵技術棧 二、實戰演示:從需求到代碼的全AI輔助2.1 場景:電商優惠券系統開發2.2 代碼生成實例2.3 智能調試演示 三、與傳統開發模式對比測試3.1 基準測試數據3.2 典型…

[特殊字符] 分享裂變新姿勢:用 UniApp + Vue3 玩轉小程序頁面分享跳轉!

在如今流量成本日益攀升的移動互聯網時代,"用戶分享拉新" 成為了增長的重要策略。而微信小程序作為天然具備社交傳播力的平臺,提供了較完善的分享機制支持。本文將從實戰角度出發,手把手教你如何使用 uni-app Vue3 構建一個支持「…

[創業之路-458]:企業經營層 - 藍海戰略 - 重構價值曲線、整合產業要素、創造新需求

“重構價值曲線、整合產業要素、創造新需求”是藍海戰略中實現價值創新的核心路徑,它們構成了一個從內部優化到外部協同,再到市場顛覆的完整邏輯鏈條。以下從理論框架、實踐方法和企業案例三個維度展開分析: 一、重構價值曲線:打…

慢查詢引發對mysql索引的探索

目錄 一、索引分類 1.1 聚簇索引結構 1.2 非聚簇索引(二級索引) 1.3 主鍵索引 1.4 唯一索引 1.5 普通索引 1.6 前綴索引 1.7 聯合索引 1.8 索引下推 1.9 索引區分度 二、優化索引的方法 2.1 索引的特點 2.2 適合創建索引的情況 2.3 不適合創建索引的情況 2.4 優…

啟用不安全的HTTP方法

背景: 今天被安全檢測出一個這樣的問題:啟用不安全的HTTP方法。DELETE方法是用來調試web服務器連接的http方式,支持該方式的服務器文件可能被非法刪除;PUT方法用來向服務器提交文件;TRACE方法本用于客戶端測試到服務器…

fvcom 水深文件dep制作

fvcom 水深文件dep制作 fvcom 水深文件dep制作20250630 本次案例網格和水深展示 vv image Figure 1 Model domain 本次制作其它驅動文件的輸入文件為yellowsea.2dm 格式2dm; 文件內容格式詳細介紹參考: https://www.xmswiki.com/wiki/SMS:2D_Mesh_Files_*.2dm …

ViewModel是EventFlow-State映射

ViewModel負責組裝界面狀態State。引發State變換的原因有很多,比如用戶點擊某個按鈕,一次網絡請求受到應答,一次本地數據庫查詢返回結果等等。因此ViewModel是根據各種事件生成State的對象,換句話說,是一個從多個事件流…

javaweb Day2

PreparedStatement作用: 預編譯SQL語句并執行: 預防SQL注入問題 SQL注入:SQL注入是通過操作輸入來修改事先定義好的SQL語句,用以達到執行代碼對服務器進行攻擊的方法。

Java項目:基于SSM框架實現的中學教學管理系統【ssm+B/S架構+源碼+數據庫+畢業論文+開題報告】

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術,讓傳統數據信息的管理升級為軟件存儲,歸納,集中處理數據信息的管理方式。本景海中學教學管理系統就是在這樣的大環境下誕生,其可以幫助管理者在短時間內處理完畢龐大的數據…

JVM調優實戰 Day 15:云原生環境下的JVM配置

【JVM調優實戰 Day 15】云原生環境下的JVM配置 文章標簽 jvm調優, 云原生, Java性能優化, JVM參數配置, 容器化部署, Kubernetes, Docker, JVM在云原生中的應用 文章簡述 隨著云原生技術的普及,Java 應用越來越多地運行在容器(如 Docker)和…

數據結構day7——文件IO

一、標準 IO 的起源與概念 標準 IO(Standard Input/Output)是由 Dennis Ritchie 在 1975 年設計的一套 IO 庫,后來成為 C 語言的標準組成部分,并被 ANSI C 所采納。它是對底層文件 IO 的封裝,提供了更便捷、可移植的文…

6.Docker部署ES+kibana

部署ES(Elasticsearch)kibana 1.ES暴露的端口很多 2.ES十分消耗內存 3.ES的數據一般需要掛載出去,放在安全目錄(掛載) elastic 前往官方手冊 1.下載運行elasticsearch的 docker run -d --name elasticsearch --net somenet…

使用mysqldump對mysql數據庫進行備份

目錄 1軟件說明 2語法格式 3備份流程 3.1只備份指定數據庫中表和數據 3.1.1準備目錄 3.1.2備份db1數據庫里面的所有表信息 3.1.3還原備份 3.2備份數據庫結構 3.2.1備份db1數據庫的結構和數據 3.2.2還原數據庫 3.3備份所有數據庫 3.3.1備份數據庫 3.3.2還原數據庫 1…

vue3路由跳轉打開新頁面

Vue3 路由跳轉打開新頁面的方法 在 Vue3 中,有幾種方法可以實現路由跳轉時打開新頁面: 1. 使用 router.resolve 方法 import { useRouter } from vue-routerconst router useRouter()const openNewPage (path) > {const resolved router.resolv…

SeaTunnel 社區 2 項目中選“開源之夏 2025”,探索高階數據集成能力!

Apache SeaTunnel 社區在“開源之夏 2025”中再傳捷報,共有兩個項目成功入選,聚焦于 Flink CDC schema 支持與元數據管理的生態擴展方向,體現出 SeaTunnel 在實時數據集成和平臺化能力構建上的深入布局。 中選項目與學生如下: 《…

Neo4j無法建立到 localhost:7474 服務器的連接出現404錯誤

一、確認中文路徑問題(核心原因) 安裝路徑包含中文,可能導致 Windows 命令行或 Neo4j 解析路徑時出錯。 解決方法: 重新安裝 Neo4j 到英文路徑(推薦): 將 Neo4j 解壓或安裝到不含中文的目錄&a…