形式就是编码格式

时间:2022-03-24 08:19:13

 fileStream:操纵字节的,也就是所有的文件都可以拿它去操纵   /   file  /  path  /  streamRead  /  streamWrite(这两个都是操纵字符的,它所操纵的都是文本文件)

fileStream 与file的区别,fileStream可以操纵大文件,因为fileStream是以文件流的形式读取文件,可以拆开读取,二file 是一次性读取。

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

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

一个简单的文件流读代替码

static void Main(string[] args)

{

string [email protected]"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() 删除文件