原文:https://www.cnblogs.com/long-gengyun/archive/2010/03/28/1698681.html

  • 文件概述 
文件在操作时表现为流,即流是从一些输入中读取到的一系列字节。

文件按信息在外部存储器上按编码方式可以分为文本文件和二进制文件。

Stream类是System.IO命名空间中的一个类,在System.IO命名空间中,包含所有允许在数据流和文件上进行同步和异步读取和写入的类,下面简单介绍一下常用的类。

1. Directory类:包含了所有操作目录的静态方法,如目录的创建,移动,复制,删除等

2. DirectoryInfo类:包含了所有操作目录的实例方法,如目录的各种属性(名字,创建时间),目录的各种操作(目录的创建,是否存在,移动,删除等)

3. File类:是对文件的典型操作,提供文本的创建,打开,复制,删除,移动等静态方法。也可以用于获取文件和设置文件的基本信息。

4. FileInfo类:对文件典型操作, 提供文本的创建,打开,复制,删除,移动等实例方法。当文件需要多次重用时,使用FileInfo类提供的实例方法,不可以使用File提供的静态方法。

5. FileStream类:该类实现了对文件读取,写入,打开,关闭操作,支持随机访问文件,可以使用同步方式打开文件进行读写,也可以用异步方式打开文件进行读写。

6. Path类:该类对包含文件或目录路径信息的String实例操作,这些操作可以跨平台的方式执行的。

7. MemoryStream类:该类创建起支持存储区为内存的流。

8. StreamReader类:该类可以读取标准文本文件的内容。即实现一个TextReader。默认编码格式为UTF-8。

9. StreamWriter类:该类可以往标准文本文件中写入内容。即实现一个TextWriter。默认编码格式为UTF-8。

10. StringReader类: 该类实现从字符串进行读取的TextReader。

11. StringWriter类:该类实现将信息写入字符串,该信息存储在基础的StringBuilder中。

12. TextReader类:该类表示可读取连续字符系统的阅读器。

13. TextWriter类:该类表示可以编写一个有序字符系列的编辑器,是抽象类。

代码示例:文件的创建与文件内容的输入输出

if(File.Exists(filePath))
{
File.Delete(filePath);
}
FileStream fs=File.Create(filePath,); //创建文件
Byte[] info=new UTF8Encoding(true).GetBytes("测试内容");
fs.Write(info,,info.Length); //向新创建的文件写入内容
fs.Close(); using(StreamReader sr=File.OpenText(filePath))
{
While(sr.ReadLine()!=null)
MessageBox.Show(sr.ReadLine());
}

参考代码:

文件属性的获取与设置:/Files/long-gengyun/FileAttribute.rar

显示文件夹中的文件与子文件夹:/Files/long-gengyun/GetDirectory.rar

文件的打印输出:/Files/long-gengyun/FilePrint.rar

计算机系统信息获取:/Files/long-gengyun/GetSystemInfo.rar

一、byte[] 和 Stream

/// <summary>
/// byte[]转换成Stream
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public Stream BytesToStream(byte[] bytes)
{
Stream stream = new MemoryStream(bytes);
return stream;
} /// <summary>
/// Stream转换成byte[]
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public byte[] StreamToBytes(Stream stream)
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, , bytes.Length);
stream.Seek(, SeekOrigin.Begin); // 设置当前流的位置为流的开始
return bytes;
}

二、文件 和 Stream

/// <summary>
/// 从文件读取Stream, 思路=文件-字节-流
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public Stream FileToStream(string path)
{
FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); // 打开文件
byte[] bytes = new byte[fileStream.Length]; // 读取文件的byte[]
fileStream.Read(bytes, , bytes.Length);
fileStream.Close();
Stream stream = new MemoryStream(bytes); // 把byte[]转换成Stream
return stream;
} /// <summary>
/// 将Stream写入文件 思路=流-字节,文件-写字节
/// </summary>
/// <param name="stream"></param>
/// <param name="path"></param>
public void StreamToFile(Stream stream, string path)
{
byte[] bytes = new byte[stream.Length]; // 把Stream转换成byte[]
stream.Read(bytes, , bytes.Length);
stream.Seek(, SeekOrigin.Begin); // 设置当前流的位置为流的开始
FileStream fs = new FileStream(path, FileMode.Create); // 把byte[]写入文件
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();
fs.Close();
}

https://www.cnblogs.com/warioland/archive/2012/03/06/2381355.html

三、BYTE与string


System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding();
  byte[] inputBytes =converter.GetBytes(inputString);
  string inputString = converter.GetString(inputBytes); 、
string inputString = System.Convert.ToBase64String(inputBytes);
  byte[] inputBytes = System.Convert.FromBase64String(inputString);
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);

C# 流与文件(Stream & File & byte[])的更多相关文章

  1. Java I/O(一)流和文件类File的概述、FileInputStream和FileInputStream

    一.流概述 & InputStream.OutputStream 流包括输入流和输出流,即I/O(Input和Output),具体结构如下: I/O类都被放在java.io包中,所有的输入流类 ...

  2. C# Stream 和 byte[] 之间的转换(文件流的应用)

    一. 二进制转换成图片 MemoryStream ms = new MemoryStream(bytes); ms.Position = ; Image img = Image.FromStream( ...

  3. 将String转化成Stream,将Stream转换成String, C# Stream 和 byte[] 之间的转换(文件流的应用)

    static void Main( string[] args ) { string str = "Testing 1-2-3"; //convert string 2 strea ...

  4. 【.Net】Byte,Stream,File的转换

    引言      文件的传输和读写通常都离不开Byte,Stream,File这个类,这里我简单封装一下,方便使用. 帮助类     public static class FileHelper { / ...

  5. C#图像处理:Stream 与 byte[] 相互转换,byte[]与string,Stream 与 File 相互转换等

    C# Stream 和 byte[] 之间的转换 一. 二进制转换成图片 MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Ima ...

  6. koa2基于stream(流)进行文件上传和下载

    阅读目录 一:上传文件(包括单个文件或多个文件上传) 二:下载文件 回到顶部 一:上传文件(包括单个文件或多个文件上传) 在之前一篇文章,我们了解到nodejs中的流的概念,也了解到了使用流的优点,具 ...

  7. 第31天学习打卡(File类。字符流读写文件)

    File类 概念 文件,文件夹,一个file对象代表磁盘上的某个文件或者文件夹 构造方法  File(String pathname) File(String parent,String child) ...

  8. c#上传文件(二)使用文件流保存文件

    1.html代码: <asp:FileUpload runat="server" ID="UpLoadFile"/> <asp:Button ...

  9. stream,file,filestream,memorystream简单的整理

    一.Stream 什么是stream?(https://www.cnblogs.com/JimmyZheng/archive/2012/03/17/2402814.html#no8) 定义:提供字节序 ...

随机推荐

  1. C# winform 发布的时候没有app.config去哪儿了?

    有时候winform发布的时候app.config不见了? 1.我们来到生成文件的目录下 找到后缀是 .config 的文件右击,打开,也可以用其他方式打卡,我这里使用的是sublime这个文本编辑器 ...

  2. k8s-强制删除pod

    kubectl get deployments --all-namespaces [root@master ~]# kubectl get deployments --all-namespacesNA ...

  3. C# 转json

    #region MyRegion StringBuilder sb = new StringBuilder(); sb.Append("{"); foreach (System.R ...

  4. jquery preventDefault()方法 语法

    jquery preventDefault()方法 语法 作用:preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交).大理石平台价格 语法:event ...

  5. C# 文件排序

    一.C#文件排序 1.按名称顺序排列 /// <summary> /// C#按文件名排序(顺序) /// </summary> /// <param name=&quo ...

  6. 1003: [ZJOI2006]物流运输

    就我一开始写状压的吗? 调不过 后来发现(直接搜索)直接最短路就行了-- \(f[i]\)表示前\(i\)天最少需要多少 \(f[i] = min(f[j] + dis(j + 1, i))\) 然后 ...

  7. jmeter csv Data Set Config 文件中带引号的数据转换问题(自动添加双引号解决办法)

    1.我们从csv中获取数据,在jmeter中使用这些数据,其中csv的数据如图,有的数据包含引号. 2.问题:我们获取的json数据,被自动添加了双引号 3.解决方式: 在CSV Data Set C ...

  8. AtCoder4351 Median of Medians 二分, 树状数组

    题目大意 定义一个从小到大的数列的中位数为第 $ \frac{n}{2}+1 $ 项.求一个序列的所有连续子序列的中位数的中位数. $ (n \leqslant 100000)$ 问题分析 由于\(n ...

  9. G.subsequence 1(dp + 排列组合)

    subsequence 1 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 You are ...

  10. jar 在windows 启动服务,卸载服务,停止端口

    参考:https://www.cnblogs.com/zhuchunlei/p/9469569.html 1,启动服务  install.bat @echo off SET JAVA_HOME=&qu ...