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