程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#文件流的讀與寫,

C#文件流的讀與寫,

編輯:C#入門知識

C#文件流的讀與寫,


工作中遇到了文件的跨平台傳送 運用了文件流 而且將計算機上的文件讀取到程序內存裡 反之將內存裡的數據以文件的形式保存 都是比較常用的 在這裡做一個簡單的應用示例。

1 將內存數據“寫”到計算機的文件裡

const string path = @"D:\text.txt";//保存文件的路徑
string content = "文件內容!!!!";//定義內存裡的數據
byte[] bytes = Encoding.Default.GetBytes(content);//將轉換成二進制數據 編碼格式為Encoding.Default
int length = bytes.Length;//如果想把數據完整的寫入 要寫入的數據長度
using (FileStream stream = new FileStream(path, FileMode.Create))
{
  stream.Write(bytes, 0, length);//寫入
}

2 將計算機文件裡的數據“讀”到內存裡

const string path = @"D:\text.txt";//要讀取數據的文件,已之前寫入的文件為例
byte[] bytes;//創建讀取結果的對象
using (FileStream stream = new FileStream(path, FileMode.Open))
{
  bytes = new byte[stream.Length];//可以確定讀取結果的長度了
  stream.Read(bytes, 0, bytes.Length);//讀操作
}
string result = Encoding.Default.GetString(bytes);//將讀取的結果轉換類型 編碼格式與寫入的編碼格式最好一致 以防止出現亂碼
Console.Write(result);

3 用文件流的“讀”和“寫”操作實現一個類似COPY的功能 打印COPY進度

string rPpath = @"D:\冰與火之歌:權力的游戲.Game.of.Thrones.2016.S06E03.HD720P.X264.AAC.CHS-ENG.DYTT.mp4";//我計算機的C盤存在這樣一個視頻
string wPath2 = @"E:\A.mp4";//我想把它寫入到E盤
byte[] bytes;//定義一個需要寫入和讀取的容器 二進制類型
using (FileStream rStream = new FileStream(rPpath, FileMode.Open))
{
  bytes = new byte[rStream.Length];//全部讀取
  rStream.Read(bytes, 0, bytes.Length);
}
using (FileStream wStream = new FileStream(wPath2, FileMode.Create))
{
  int num = bytes.Length / (1024 * 1024);//每次讀取的大小為1MB
  for (int i = 0; i <= num; i++)
  {
    wStream.Write(bytes, 0, num);
    i++;
    Console.Write(Math.Round((i / (float)num), 2));//打印已讀取的百分比
    Console.Write("\n");
  }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved