C#高階篇-File 檔案操作相關
阿新 • • 發佈:2018-12-06
1.檢視檔案資料夾的資訊
通過FileInfo類獲取檔案相關資訊
static void Main(string[] args) { //相對路徑:找當前程式的檔案路徑 //絕對路徑:加上檔案完整的路徑名 FileInfo fileInfo = new FileInfo(@"F:\unity project\C sharp 高階篇\檔案操作\bin\Debug\TextFile1.txt"); Console.WriteLine(fileInfo.Exists);//判斷該檔案是否存在 Console.WriteLine(fileInfo.Name);//檔名.字尾 Console.WriteLine(fileInfo.Directory); Console.WriteLine(fileInfo.Length); Console.WriteLine(fileInfo.IsReadOnly); Console.ReadKey(); }
通過CopyTo將檔案複製到當前目錄下
//將檔案複製到當前目錄下
fileInfo.CopyTo("t.txt");
建立檔案
FileInfo fileInfo = new FileInfo("none.txt");
if(fileInfo.Exists == false)
{
fileInfo.Create();//建立當前檔案
}
重新命名操作
FileInfo fileInfo = new FileInfo("none.txt"); fileInfo.MoveTo("yeap.txt");//相當於重新命名操作
2.檔案的讀寫
通過一行一行的讀取,將讀取的內容存放在一個string[]中
string[] strArray = File.ReadAllLines("IOtext.txt");
foreach (string temp in strArray)
{
Console.WriteLine(temp);
}
通過ReadAllText方法,將文字儲存到一個text檔案中
string s = File.ReadAllText("IOtext.txt"); Console.WriteLine(s);
讀取byte的資料
byte[] byteArray = File.ReadAllBytes("pic.jpg");
foreach (var b in byteArray)
{
Console.Write(b);
}
File檔案的寫入和讀取是相對應的
File.WriteAllText("textfile2.txt", "hello 中國");
File.WriteAllLines("textfile3.txt", new string[] { "frist line", "aaaall", "一句話" });
使用FileStream來進行檔案的讀取
//1.建立檔案流 用來操作檔案
FileStream stream = new FileStream("TextFile1.txt", FileMode.Open);
//2.讀取或者寫入資料
byte[] data = new byte[1024];
//1 byte = 1位元組 1024byte = 1kb
int length = stream.Read(data,0,data.Length);
for(int i = 0; i < length; i++)
{
Console.Write(data[i] + " ");
}
3.StreamReader和StreamWriter讀寫文字檔案
通過StreamReader讀取檔案,使用ReadLine()方法
//建立文字檔案讀取流
StreamReader reader = new StreamReader("test.txt");
while (true)
{
string str = reader.ReadLine();
if(str == null)
{
break;
}
Console.WriteLine(str);
}
使用ReadToEnd()方法,直接讀取文字中的全部data儲存到一個string中
string str = reader.ReadToEnd();//讀取到文字的結尾
Console.WriteLine(str);
reader.Close();
使用Read()方法,每次讀取一個字元。當文字沒有資料的時候返回-1
while (true)
{
int res = reader.Read();
if(res == -1)
{
break;
}
else
{
Console.Write((char)res);
}
}
使用StreamWriter寫入資訊
StreamWriter writer = new StreamWriter("textfile2.txt");
while (true)
{
string message = Console.ReadLine();
if(message == "q")
{
break;
}
//writer.Write(message);//寫入一個字串
writer.WriteLine(message);//寫入一個字串並換行
}
writer.Close();