1. 程式人生 > >C#的幾種檔案操作方法

C#的幾種檔案操作方法

建立或覆蓋檔案

需求:如果檔案不存在,建立之,如果存在,覆蓋之。

1,可能有問題的方法

using (FileStream fs = File.OpenWrite(@"d:\work\1.txt")) {

    byte[] toBytes = Encoding.UTF8.GetBytes("11111111");
    fs.Write(toBytes, 0, toBytes.Length);
}

這個方法不會清空已存在檔案的內容,如果原始檔的內容比後寫入的內容長,那麼這些長的內容會被保留,這通常不是我們想要的結果。

2,正確的方法

using (FileStream fs = File.Create(@"
d:\work\1.txt")) { byte[] toBytes = Encoding.UTF8.GetBytes("11111111"); fs.Write(toBytes, 0, toBytes.Length); }

唯一的不同就是把File.OpenWrite改成了File.Create,如果檔案已經存在,那麼其內容會被清空。

3,方法2的簡化版

File.WriteAllBytes(@"d:\work\1.txt", Encoding.UTF8.GetBytes("11111111"));

 4,方法2的文字版

using (StreamWriter sw = File.CreateText(@"
d:\work\1.txt")) { sw.Write("11111111"); }

 5,方法4的簡化版

File.WriteAllText(@"d:\work\1.txt", "11111111");

讀檔案

1,正常讀

byte[] buff = new byte[1024]; //假設檔案不超過1KB
using(FileStream fs = File.OpenRead(@"d:\work\1.txt")) {
    int len = fs.Read(buff, 0, 1024);
    string content = Encoding.UTF8.GetString(buff, 0
, len); Console.WriteLine(content); }

2,讀文字檔案

using (StreamReader sr = File.OpenText(@"d:\work\1.txt")) {
    string content = sr.ReadToEnd();
    Console.WriteLine(content);
}

3,方法2的簡化版

string content = File.ReadAllText(@"d:\work\1.txt");

追加

1,正常追加

using (FileStream fs = File.Open(@"d:\work\1.txt", FileMode.Append, FileAccess.Write)) {
    byte[] toWrite = Encoding.UTF8.GetBytes("123123\r\n");
    fs.Write(toWrite, 0, toWrite.Length);
}

2,追加文字

using (StreamWriter sw = File.AppendText(@"d:\work\1.txt")) {
    sw.Write("123123\r\n");
    sw.WriteLine("123123"); //與上面語句等價
}

相關推薦

C#的檔案操作方法

建立或覆蓋檔案 需求:如果檔案不存在,建立之,如果存在,覆蓋之。 1,可能有問題的方法 using (FileStream fs = File.OpenWrite(@"d:\work\1.txt")) { byte[] toBytes = Encoding.UTF8.GetBytes(

Java陣列的常用操作方法(排序演算法及查詢)

陣列的查詢 查詢是在陣列中尋找特定元素的過程。 線性查詢法 線性查詢法將要查詢的關鍵字key與陣列中的元素逐個進行比較。如果匹配成功,線性查詢法則返回與關鍵字匹配的元素在陣列中的下標;如果沒有匹配成功,則返回-1。下面給出線性查詢法的程式: pr

C# 對文字檔案讀寫方法總結

計算機在最初只支援ASCII編碼,但是後來為了支援其他語言中的字元(比如漢字)以及一些特殊字元(比如€),就引入了Unicode字符集。基於Unicode字符集的編碼方式有很多,比如UTF-7、UTF-8、Unicode以及UTF-32。在Windows作業系統中,一個文

C# WINFORM程式配置檔案操作方法

C# WINFORM程式配置檔案操作方法 在寫winform程式的時候,我們經常會把配置檔案寫在Settings.settings中, 但是,在這裡我們發現,儲存後,在程式中對這個配置進行修改並不能生效 程式級別的配置呢,我常用儲存在app.config中的appSettings節點中

C 擷取字串的方法 split Substring Replace remove

    Split 方法忽略 separator 的任何值為 Nothing 或空字串 ("") 的元素。 為了在 separator 中的字串具有公共字元的情況下避免出現不明確的結果, Split 操作從例項值的開始進行到結尾,並匹配 separator 中與例項中的分隔符相等的第一個元素。 例項中子字串的

C#檔案操作方法大全

C#追加檔案 StreamWriter sw =File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw.WriteLine("追逐理想"); sw.WriteLine("kzlll"); sw.WriteLine(".NET筆記"); sw.F

Java/PHP/C ... 語言 RSA 的互操作

最近有一個專案,涉及到和別的網站合作,雙方通訊的鑑權計劃是通過 RSA 來做。由於可能涉及到不同的開發環境,於是要研究一下各個語言對 RSA 的支援 openssl 預設創建出來的公金鑰檔案是 PEM 格式的,但 Java API 匯入密碼只能是 DER 格式,特別是

C語言的取整方法

C語言有以下幾種取整方法: 1、直接賦值給整數變數。如: int i = 2.5; 或 i = (int) 2.5; 這種方法採用的是捨去小數部分 2、C/C++中的整數除法運算子“/”本身就有取整功能(int / int),但是整數除法對負數的取整結果和使用的C編

C#擷取字串的方法(split 、Substring、Replace、remove)

C#截圖字串常用的方法有 split 、Substring、Replace、remove等。 split的使用:  1. Split( Char ())      返回的字串陣列包含此例項中的子字串(

C中“fatal error C1075: end of file found before the left brace '{'”錯誤的可能解決方法

fatal error C1075: end of file found before the left brace '{'的幾種情況 1.缺少"}",是括號不匹配的問題 2.某些特殊的轉義字元多寫了

C#字串的加密解密方法

/// <summary> /// 字串加密元件 /// </summary> public class Encrypt {     #region "定義加密字串變數"     private SymmetricAlgorithm mCSP;  //宣告對稱演算法變數     pr

checkbox的遍歷方法

clas 屬性 first undefined define true 方法 第一個 tro <div> <input type="checkbox" name="ckb" value="1" />1

002—對數組的基本操作

copy process ble reverse rand sin post body 矩陣 1 package oo2_array_code_processing; 2 3 import java.util.Arrays; 4 5 /** 6 * @a

JavaWeb關於session生命周期的設置方法

默認 data 目的 cti bsp 建立 取出 周期 div 一般session的生命周期都是建立在用戶登錄系統後對用戶信息進行一個記錄,session類似於你有一張銀行卡,而卡裏的錢就是屬於session存儲的信息,卡掉了就不能取出裏面的錢. 以前session的生命周

數值最優化方法

數值 csdn 優缺點 最優 jin sheng tao 算法 blog 牛頓法、擬牛頓法 https://blog.csdn.net/jinshengtao/article/details/51615162 Levenberg–Marquardt算法 https:

map的遍歷方法

IT col nbsp cti 集合 pos post value body private Hashtable<String, String> emails = new Hashtable<String, String>(); //方法一:

sqlalchemy和flask-sqlalchemy的分頁方法

elf offset 分頁查詢 order == ems div statement ron sqlalchemy中使用query查詢,而flask-sqlalchemy中使用basequery查詢,他們是子類與父類的關系 假設 page_index=1,page_siz

寶塔Linux nginx http強制跳轉https設置方法

http轉https SSL證書的申請 SSL證書設置 最近很多人都比較關註SSL證書的申請與設置,春哥技術博客近期也為大家介紹了國內一些免費SSL證書申請流程及比較常用的VPS建站環境包如何安裝配置SSL證書。希望有需要的朋友能成功為自己的站點安裝SSL證書。在這裏春哥為大家分享幾種Nginx環

Linux分區方法

Linux分區方法1:通用方法/boot 引導分區 200M swap 交換分區 內存小於8g則是內存的1.5倍,內存大於8g則給8g / 根分區 剩下多少給多少 2:數據非常重要/boot swap / 20-200G /data 剩下多少給多少 3

win10系統屬性面板的打開方法

簡單的 win7 jpg 系統 方法 容易 同方 搜索 .html 隨著win10系統的更新和改進,不少用戶開始選擇升級win10系統了,它與win7、win8略有不同,比如要打開屬性面板進行一些設置的時候,剛升級的小夥伴可能會找不到在哪裏?下面小編就教大家幾種快速打開wi