filestream读取文件(如何用C#读取文件到byte[]类型变量)
![filestream读取文件(如何用C#读取文件到byte[]类型变量)](/static/images/content_image/aperitif-2027177_1920.jpg)
本文目录
- 如何用C#读取文件到byte[]类型变量
- C#怎么用FileStream一行一行的读取文本
- c#dat文件读取问题
- C# 读取文件的问题:file类的ReadAllText、WriteAllText与流Filestream的关系
如何用C#读取文件到byte[]类型变量
使用FileStream流读取任何文件为二进制数组。即可保存至Byte类型的变量中。
string path = Server.MapPath(“/test.txt“);FileStream fs = new FileStream(path, FileMode.Open);
//获取文件大小
long size = fs.Length;
byte array = new byte[size];
//将文件读到byte数组中
fs.Read(array, 0, array.Length);
fs.Close();
上述代码就示例了如何用FileStream读取一个文件至Byte类型的变量中。
C#怎么用FileStream一行一行的读取文本
FileStream fs = New FileStream (文件路径, FileMode.Open);
StreamReader streamReader = new StreamReader(fileStream);
string line = ““;
while ((line = streamReader.ReadLine()) != null)
{
//line就是一行一行的文本
。。。
}
c#dat文件读取问题
1、使用FileStream读写文件
文件头:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
读文件核心代码:
byte byData = new byte;
char charData = new char;
try
{
FileStream sFile = new FileStream(“文件路径“,FileMode.Open);
sFile.Seek(55, SeekOrigin.Begin);
sFile.Read(byData, 0, 100); //第一个参数是被传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
}
catch (IOException e)
{
Console.WriteLine(“An IO exception has been thrown!“);
Console.WriteLine(e.ToString());
Console.ReadLine();
return;
}
Decoder d = Encoding.UTF8.GetDecoder();
d.GetChars(byData, 0, byData.Length, charData, 0);
Console.WriteLine(charData);
Console.ReadLine();
写文件核心代码:
FileStream fs = new FileStream(文件路径,FileMode.Create);
//获得字节数组
byte data =new UTF8Encoding().GetBytes(String);
//开始写入
fs.Write(data,0,data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
2、使用StreamReader和StreamWriter
文件头:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
StreamReader读取文件:
StreamReader objReader = new StreamReader(文件路径);
string sLine=““;
ArrayList LineList = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null&&!sLine.Equals(““))
LineList.Add(sLine);
}
objReader.Close();
return LineList;
StreamWriter写文件:
FileStream fs = new FileStream(文件路径, FileMode.Create);
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write(String);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
===================================================================================
方式一:用FileStream
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = “txt文件|*.txt|所有文件|*.*“;
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = “写文件“;
//如果用户点击了保存按钮
if(sf.ShowDialog()==DialogResult.OK)
{
//实例化一个文件流---》与写入文件相关联
FileStream fs = new FileStream(sf.FileName,FileMode.Create);
//获得字节数组
byte data =new UTF8Encoding().GetBytes(this.textBox1.Text);
//开始写入
fs.Write(data,0,data.Length);
//清空缓冲区、关闭流
fs.Flush();
fs.Close();
}
方式二:用StreamWriter
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = “txt文件|*.txt|所有文件|*.*“;
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = “写文件“;
//如果用户点击了保存按钮
if (sf.ShowDialog() == DialogResult.OK)
{
//实例化一个文件流---》与写入文件相关联
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//实例化一个StreamWriter--》与fs相关联
StreamWriter sw = new StreamWriter(fs);
//开始写入
sw.Write(this.textBox1.Text);
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
string FileName = Guid.NewGuid().ToString() + “.txt“; //GUID生成唯一文件名
StringBuilder ckpw = new StringBuilder(“\“凭证输出\“, \“V800\“, \“001\“, \“东风随州专用汽车有限公司\“,“ + “\“F89自由项16\“, \“F90审核日期:\““);
if (!FileIO.IsFolderExists(Server.MapPath(“pzsc“)))
FileIO.CreaterFolder(Server.MapPath(““), “file://pzsc/“);
string filePath = Server.MapPath(“pzsc“) + “\\“ + FileName;
System.IO.StreamWriter sw = new System.IO.StreamWriter(filePath, false, Encoding.GetEncoding(“GB2312“));//创建的时候需要指定编码格式,默认是UTF-8,中文显示乱码
sw.WriteLine(ckpw.ToString());
sw.Close();
方式三:用BinaryWriter
//实例化一个保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设置文件保存类型
sf.Filter = “txt文件|*.txt|所有文件|*.*“;
//如果用户没有输入扩展名,自动追加后缀
sf.AddExtension = true;
//设置标题
sf.Title = “写文件“;
//如果用户点击了保存按钮
if (sf.ShowDialog() == DialogResult.OK)
{
//实例化一个文件流---》与写入文件相关联
FileStream fs = new FileStream(sf.FileName, FileMode.Create);
//实例化BinaryWriter
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(this.textBox1.Text);
//清空缓冲区
bw.Flush();
//关闭流
bw.Close();
fs.Close();
}
C# 读取文件的问题:file类的ReadAllText、WriteAllText与流Filestream的关系
我们看不到。net Framework 的源代码,但猜测ReadAllText()基本上应该也是用Filestream的read方式实现的。多一个方法就可以让你少写很多行的代码,不用处理Filestream的Dispose。这就是写library的人比较聪明之处吧。
当然具体比较两个方法,ReadAllText()是一个简单的方法,你一次读出所有的内容。而直接read Filestream,你有更多的控制,但也需要自己初始化Filestream,记得Dispose FileStream.
简单说吧,ReadAllText()像月票,Read 像每次坐车现买车票。
WriteAllText, 和 Write 方法和前面的一对类似。
![filestream读取文件(如何用C#读取文件到byte[]类型变量)](/static/images/content_image/dining-room-3108037_1280.jpg)
更多文章:
issued retroactively(FORM E上盖“ISSUED RETROACTIVELY”的问题,小女在线等待)
2026年10月15日 10:30
begin和start的区别(start与begin的区别)
2026年10月15日 09:20
vant官网中文(范特365 是韩国化妆品VANT36.5吗)
2026年10月15日 09:10
prison break(越狱(prison break)到底是在讲个什么)
2026年10月15日 06:50
c程序设计第五版教学视频(求C程序设计(第五版)谭浩强教材源代码、视频课件等电子版资料!谢谢大家!)
2026年10月15日 06:40
十六进制转二进制表(16进制转为2进制、8进制、10进制的公式)
2026年10月15日 06:10




