1. 程式人生 > >c#文件的操作

c#文件的操作

bsp move 所有 alt ise ssa space 作文 class

fileStream:操作字節的,也就是所有的文件都可以拿它去操作 / file / path / streamRead / streamWrite(這兩個都是操作字符的,它所操作的都是文本文件)

fileStream 與file的區別,fileStream可以操作大文件,因為fileStream是以文件流的形式讀取文件,可以拆開讀取,二file 是一次性讀取。

文件流-à文件(fileStreamàfime):

操作小文件可以用file,而操作大文件就需要用到fileStream

一個簡單的文件流讀取代碼

static void Main(string[] args)

{

string path=@"C:\Users\Administrator\Desktop\奧秘.txt";

using (FileStream fsRead = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Read))

{

byte[] buffer=new byte[1024*1024*5];

//i代表實際讀取到的字節

int i = fsRead.Read(buffer, 0, buffer.Length);

string str = Encoding.UTF8.GetString(buffer,0,i);

Console.WriteLine(str);

Console.ReadKey();

}

}

一個關於文件流讀寫的小練習:

技術分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using
System.Drawing; 6 using System.IO; 7 using System.Linq; 8 using System.Text; 9 using System.Threading.Tasks; 10 using System.Windows.Forms; 11 12 namespace fileStream小練習 13 { 14 public partial class Form1 : Form 15 { 16 public Form1() 17 { 18 InitializeComponent(); 19 } 20 //選擇文件 21 private void button1_Click(object sender, EventArgs e) 22 { 23 //選擇文件的彈窗 24 OpenFileDialog ofd = new OpenFileDialog(); 25 //設置標題 26 ofd.Title = "請選擇文件"; 27 //初始化打開的界面 28 ofd.InitialDirectory = @"C:\Users\Administrator\Desktop"; 29 //多選 30 ofd.Multiselect = true; 31 //文件的類型 32 ofd.Filter = "所有文件|*.*"; 33 ofd.ShowDialog(); 34 this.txtReadPath.Text = ofd.FileName; 35 } 36 //保存文件 37 private void button2_Click(object sender, EventArgs e) 38 { 39 OpenFileDialog ofd = new OpenFileDialog(); 40 ofd.Title = "選擇保存的地址"; 41 ofd.InitialDirectory = @"C:\Users\Administrator\Desktop"; 42 ofd.ShowDialog(); 43 txtSavePath.Text = ofd.FileName; 44 45 } 46 47 private void button3_Click(object sender, EventArgs e) 48 { 49 using (FileStream fsRead = new FileStream(this.txtReadPath.Text.Trim(), FileMode.OpenOrCreate, FileAccess.Read)) 50 { 51 using (FileStream fsWrite = new FileStream(this.txtSavePath.Text.Trim(), FileMode.OpenOrCreate, FileAccess.Write)) 52 { 53 this.progressBar1.Maximum = (int)fsRead.Length; 54 byte[] buffer = new byte[1024 * 1024 * 3]; 55 while (true) 56 { 57 58 //實際讀取的字節數 59 int r = fsRead.Read(buffer, 0, buffer.Length); 60 61 fsWrite.Write(buffer, 0, r); 62 this.progressBar1.Value = (int)fsWrite.Length; 63 if (r == 0) 64 { 65 MessageBox.Show("上傳成功!"); 66 break; 67 } 68 } 69 } 70 } 71 } 72 } 73 }
View Code

註意:File 只能操作小文件,一次性讀取

File類:

File.ReadAllLines(“路徑”,Encoding.Default);//讀取本地txt格式的文件//只能操作文本文件,

什麽時文本文件,放在記事本中不會亂碼的文件,基本都屬於文本文件,常見 的有txt html xml

Encoding.Default是默認的本機的編碼格式

File.ReadAllLines()的默認編碼格式時UTF-8 , 返回的是一個數組,以行為單位

還有一個 File.ReadAllText() 返回一個字符串,將文件一字符串的格式讀取

還有一個叫File.ReadAllBytes()返回一個字節數組,然後再通過Encoding.Default.GetString(buffer)轉換成字符串.

//以字符數組的方式讀取

//string[] lines = File.ReadAllLines(@"C:\Users\Administrator\Desktop\2017-7-4日筆記.txt",ASCIIEncoding.Default);

//foreach (string item in lines)

//{

// Console.WriteLine(item);

//}

//以字符串的方式讀取

//string str = File.ReadAllText(@"C:\Users\Administrator\Desktop\2017-7-4日筆記.txt", ASCIIEncoding.Default);

//Console.WriteLine(str);

//以字節數組的方式讀取

//byte[] buffer = File.ReadAllBytes(@"C:\Users\Administrator\Desktop\2017-7-4日筆記.txt");

//將字節轉換成字符串

//string str = Encoding.Default.GetString(buffer);

//int length = str.Length;

以上時file的讀取的三種方式,下面介紹三種寫的操作:

File.WriteAllBytes()、File.WriteAll

//文件的寫入

//string str="heheda";

//byte[] buffer = Encoding.Default.GetBytes(str);

//File.WriteAllBytes(@"C:\Users\Administrator\Desktop\qqq.txt", buffer);

第二種方法

String str=”hehe”;

File.WriteAllText(@"C:\Users\Administrator\Desktop\qqq.txt",str);

第三種方法:

string[] arrstr = { "hehe", "xixi", "lili" };

File.WriteAllLines(@"C:\Users\Administrator\Desktop\qqq.txt", arrstr);

編碼格式:概念:將字符串以怎樣的形式保存為二進制。形式就是編碼格式。

最早的編碼格式ASCII美國人的256個

中國最早的編碼:GB2312

香港臺灣GBK

還有個少數民族的GB18030

最後ISO的一個組織出來了,出了一個通用的標準編碼:Unicode

剛開始用的時utf-16

現在用的最多的時utf-8

出現亂碼的原因:我們在保存文件的時候采用的編碼格式與打開這個文件時候的編碼格式不一樣

File 是一個靜態類,介紹幾個常用的方法:

Exists():判斷制定的文件是否存在

Create()創建文件

Move() 剪切(移動)文件

Copy() 復制文件

Delete() 刪除文件

    

c#文件的操作