1. 程式人生 > >C# Path操作路徑檔案、File處理檔案、讀寫檔案:byte[];string[];string; string與byte[]轉換,File.AppendAllText()

C# Path操作路徑檔案、File處理檔案、讀寫檔案:byte[];string[];string; string與byte[]轉換,File.AppendAllText()

將字串以怎樣的形式儲存在二進位制------編碼

File 和Path 都在名稱空間 using System.IO;

1、 專門操作路徑 Path
           string str = @"E:\language\C#\C#learn\first.wav";  :假設我們知道檔案的路徑,需要提取檔名稱,目前有兩種方式:通過字串操作和利用Path處理

     利用字串的方法提取檔名
            // 假如要找到最後的檔名  first.wav
            int index = str.LastIndexOf("\\");// 找到最後出現'\'的位置
            string st = str.Substring(index + 1);  // 提取‘\’後面的字元
            Console.WriteLine(st);        // 輸出

2、利用Path處理路徑檔案

 
string [email protected]"E:\language\c#\34\video\lesson1.avi";
string fileName=Path.GetFileName(str); // 很方便的獲得檔名 ,str中存放的是檔案的路徑
string fileNameWOEPath.GetFileNameWithoutExtension(str); //獲得檔名,不包括副檔名
string fileExtension=Path.GetExtension (str); //獲得副檔名
string fileFullPath=Path.GetFullPath(str); //獲得檔案路徑
string fileFileName=Path.GetDirectoryName (str); //獲得資料夾名
string fileCombine=Path.Combine (@"f\lan\c\",@"ccc#"); //組成新的路徑名

string str = @"E:\language\C#\video\1.avi";
            string path = Path.ChangeExtension(str,".jpg");//修改檔案的字尾,只是字串層面的操作,檔案型別實質沒有改變。
            string path1 = Path.Combine(@"E:\language\C#\video","pic.jpg");//相對於‘+’,來說,不需要考慮\的問題

3 檔案File
       File.Create(@"D:\vtang\桌面\a.txt"); // 建立一個檔案    
       File.Delete(@"D:\vtang\桌面\a.txt");  // 刪除一個檔案
       File.Copy(@"D:\vtang\桌面\a.txt",@"D:\vtang\桌面\new.txt");  // 賦值copy一個檔案
       File.Move(@"D:\vtang\桌面\new.txt", @"D:\vtang\桌面\new.txt");  // 將一個檔案從一個地方移動到另一個地方
4 檔案的讀寫

讀:

    1、     byte[ ] by = File.ReadAllBytes(@"D:\vitang\桌面\a.txt");  // 以位元組形式輸出 ,輸出位元組陣列
            //需要將位元組陣列中的每個元素按照指定的編碼形式編碼成字串

            string s = Encoding.GetEncoding("GB2312").GetString(by);      //編碼,ANSI格式,default,兩種格式都可以
            string s1 = Encoding.Default.GetString(by);                   // 儲存的格式跟開啟的格式不一致時,出現亂碼
    2、     string[ ] str=File.ReadAllLines(@"D:\vitang\桌面\a.txt",Encoding.Default); //以string形式輸出  用來操作每行資料;其他兩種方式都不可以
    3、     File.ReadAllText(@"D:\viang\桌面\a.txt",Encode.GetEndcoding("GB2312"));
            string[ ] str = File.ReadAllLines(@"D:\vitang\桌面\a.txt",Encoding.Default );
            string str=File.ReadAllText(@"D:\vitang\桌面\a.txt",Encoding.Default );
寫:(這些寫的方式都會把檔案中原來的資料覆蓋,可以用追加AppendAllText())
            string  strn="將這個以位元組形式寫入檔案中,先將string轉換為byte[]";
            byte[] byy=Encoding.Default.GetBytes(strn);
            File.WriteAllBytes(@"d:\vitang\桌面\a.txt",byy);// 檔案不存在則建立,存在則覆蓋
            string[]  strn={"將這個以位元組形式寫入檔案中,先將string轉換為byte[]","h"};

            byte[] reby = File.ReadAllBytes(@"d:\vitang\桌面\a.txt");
            string restr= Encoding.Default.GetString(reby);
            File.WriteAllLines(@"d:\vitang\桌面\a.txt", strn,Encoding.Default);
            File.WriteAllLines(@"d:\vitang\桌面\a.txt", strn,Encoding.Default);

讀寫檔案的總結:

總共有三個方法讀寫檔案

1、byte[]---byte:  ReadAllBytes()、WriteAllBytes()

 byte[] by = File.ReadAllBytes(@"D:\vitang\桌面\a.txt"); // 把檔案中的內容讀入到byte[ ]陣列中,再轉換為string
 string s1 = Encoding.Default.GetString(by);     string與byte[ ]轉換
 string s1 = Encoding.GetEncoding("GB2312").GetString(by);      //編碼,ANSI格式,default,兩種格式都可以

 byte[] byy=Encoding.Default.GetBytes(strn);
 File.WriteAllBytes(@"d:\viang\桌面\a.txt",byy);// 將string陣列先轉為byte[]陣列,再存入檔案中
2、string--lines: ReadAllLines()、WriteAllLine()
string[] str=File.ReadAllLines(@"D:\vitang\桌面\a.txt",Encoding.Default); //以string[ ] 形式輸出
string []   strn={"heool ","hao","號店"};
File.WriteAllLines(@"d:\vitang\桌面\a.txt", strn,Encoding.Default );    // 將string[ ]陣列存到檔案中,指定編碼格式
3、string---Text: ReadAllText()、WriteAllText()
string str=  File.ReadAllText(@"D:\viang\桌面\a.txt",Encode.GetEndcoding("GB2312"));
string str2="hello world";
File.WriteAllText(@"d:\vitang\桌面\a.txt", str2,Encoding.Default );

總結:
string[]:File.ReadAllLines()和string:File.ReadAllText()的讀寫都是文字檔案,File只適合讀小檔案,大的檔案需要檔案流FileStream()讀取。

byte[ ]轉換為string

string s1 = Encoding.Default.GetString(by); //string與byte[]轉換
string s1 = Encoding.GetEncoding("GB2312").GetString(by); //編碼,ANSI格式,default,兩種格式都可以

            void AppendAllText(string Path,string contents);//將文字contents的內容附加到檔案path中
            bool Exists(string path);//判斷檔案path是否存在
            string[] ReadAllLines(string path);//讀取文字檔案到字串陣列中
            string ReadAllText(string path);//讀取文字檔案到字串中
            void WriteAllText(string Path,string contents);//將文字contents的內容儲存W到檔案path中,會覆蓋舊內容
            WriteAllLines(string Path,string[] contents);//將字串陣列一行一行儲存到檔案path中,會覆蓋舊內容


相關推薦

C# Path操作路徑檔案File處理檔案檔案byte[];string[];string stringbyte[]轉換,File.AppendAllText()

將字串以怎樣的形式儲存在二進位制------編碼 File 和Path 都在名稱空間 using System.IO; 1、 專門操作路徑 Path            string str = @"E:\language\C#\C#learn\first.wav";

Python檔案&IO處理技巧(1): 重定向間隔符路徑存在性檔案列表

1. 文字資料的讀寫 open() & write() : rt模式的重新整理模式 當我們需要讀寫各種不同編碼的文字資料(如ASCII,UTF-8或UTF-16編碼等), 可以直接使用帶rt模式的open()內建函式。如果需要將文字內容寫入到一個檔案中,就要使用帶有 w

fstream C 風格(例如fread 和 fwrite )兩種檔案方法的效率比較

為了探錄c++ 風格的fstream與 C 風格(例如fread 和 fwrite )兩種讀寫檔案的方法的效率,我特意做了兩個實驗。 我的機器是Windows XP, Visual Studio 2008 1. 測試寫檔案速度 程式設計思路: 將TEST_SIZE個

處理Python2.7檔案中的中文亂碼問題

Python2.7對於中文編碼的問題處理的並不好,這幾天在爬資料的時候經常會遇到中文的編碼問題。但是本人對編碼原理不瞭解,也沒時間深究其中的原理。在此僅從應用的角度做一下總結, 1.設定預設編碼 在Python程式碼中的任何地方出現中文,編譯時都會報錯,這時

Python檔案&IO處理技巧(1): 重定向間隔符路徑存在性檔案列表

1. 文字資料的讀寫 open() & write() : rt模式的重新整理模式 當我們需要讀寫各種不同編碼的文字資料(如ASCII,UTF-8或UTF-16編碼等), 可以直接使用帶rt模式的open()內建函式。如果需要將文字內容寫入到一個檔案中,就要使用帶有

(C/C++) FILE 檔案操作

per use () eat col 在操作 har 意思 etl 在C/C++ 讀寫檔案操作比較常見應該是利用 FILE、ifstream、ofstream 在這篇筆記裡頭記錄 FILE、fstream 使用方法及操作 1 #include <iostream&

JAVA exception異常處理+I/O操作檔案 筆記

JAVA  異常處理  JAVA的異常5個關鍵字try...catch...finally..throw..throws 捕獲異常 宣告異常 丟擲異常 try 執行可能產生異常的程式碼 throws

C++檔案操作

原文來自:http://blog.csdn.net/study16/article/details/5879428 來源:http://www.javaeye.com/topic/383903 讀 《C++ Primer Plus》第17章4-7節 一     頭 

Python中的檔案IO操作檔案追加檔案

【注】:下述操作過程是結合多種網路方法,然後自己實踐的結果。寫在這裡,主要目的是加深記憶,也希望能幫助後來者 Python中檔案的讀寫包含三個步驟:開啟檔案,讀/寫檔案,關閉檔案。 檔案開啟之後必

C++檔案操作函式-檔案

檔案讀寫是基礎中的基礎,關於此類知識的文章非常多,但還是想根據自己的使用心得去總結這麼一些內容。 1.檔案的開啟和關閉 開啟和關閉 fopen()函式 FILE *fopen(char *filename, *type); filename:可以包

C檔案操作總結

FILE *fopen( const char *filename, const char *mode ); 一、對已經存在的檔案進行讀寫 mode: “r”—— Opens for reading. “r+”—- Opens for

C# FTP操作 WebRequestMethods.Ftp.RemoveDirectory,遠端伺服器返回錯誤:(550) 檔案不可用(例如,未找到檔案,無法訪問檔案)

今天用程式碼刪除FTP伺服器上的目錄時候,報錯:遠端伺服器返回錯誤:(550) 檔案不可用(例如,未找到檔案,無法訪問檔案)。 習慣性的google,不外乎以下幾點: 1.URL路徑不對,看看有沒有多加空格,或者大小寫問題 2.許可權是否足 3.需要反覆連線的時候,如Get

標頭檔案處理命令名稱空間(作用域)連結

關於與include搭配的符號(雙引號 & 尖括號):   C++有一些編寫好的標頭檔案(比如標準函式庫等等),它們存放在VC++的Include資料夾裡。當我們使用#include <

C++檔案處理UTF8檔案處理GBK中文字元

讀檔案 //從檔案中提取詞典 void getLexiconFromTrainData(char* filepath){ maxLength = 0; lexicalItemCount=0; allSentenceCount=0; wordCount=0

C++中檔案過程中異常處理機制

        在利用C++進行檔案讀取與寫入過程中,無論是針對二進位制檔案還是文字檔案均需要進行異常處理,在C++中我們可以利用CFile進行檔案的讀寫,而在MFC中還可以利用CStdioFile進行檔案的讀寫。         利用CFile進行讀文字檔案過程中的異常處

關於C++中輸入輸出的小結——檔案string

常用函式和類的介紹 getline(istream& , string&) 功能:將輸入流中的資料輸出到string物件中,直到遇到\n。可以用於從檔案或者螢幕中將一行文字接收並存儲下來。 常用的io類有iostream,fstream,

day15——異常常用形式異常處理方法raise關鍵字的使用

nco 尚未實現 對象 縮進 lower 會有 tran ise 通知 異常既是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。 一般情況下,在Python無法正常處理程序時就會發生一個異常。異常是Python對象,表示一個錯誤。當Python腳本發生

android檔案操作——檔案demo

寫檔案操作: public void save(String inputText) { FileOutputStream out = null; BufferedWriter writer = null; try {

C語言 檔案大小,分配空間,檔案,寫入檔案,實現複製的功能

首先通過兩種方法得到檔案的大小,位元組為單位,根據這個大小使用malloc分配固定的空間buffer,二進位制流讀入檔案,把二進位制流寫入buffer中,buffer輸出寫入到新的檔案。 原始檔1.txt,輸出檔案1.txt.txt 環境為Ubuntu 16.04,gcc #incl

C# & JAVA檔案

using System; using System.IO; using System.Text; namespace ConsoleApplication4 { class Program { public static void Read(string path) { FileS