(三十八)C#编程基础复习——C#文件读写
文件是存储在磁盘中的具有特定名称和目录路径的数据集合,当我们使用程序对文件进行读取或写入时,程序会将文件以数据流(简称流)的形式读入内存中。我们可以将流看作是通过通信路径传递的字节序列,流主要分为输入流和输出流,输入流主要用于从文件读取数据(读操作),输出流主要用于向文件中写入数据(写操作)。
一、示例(使用fileStream类读取指定的文件)
namespace _040
{
internal class Program
{
static void Main(string[] args)
{
FileStream file = new FileStream("test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
for(int i=0;i<20;i++)
{
file.WriteByte((byte)i);
}
file.Position = 0;
for(int i=0;i<20;i++)
{
Console.Write(file.ReadByte()+" ");
}
file.Close();
Console.ReadKey();
}
}
}
运行结果:
二、C#中文本文件的读取写入
try
{
//创建StreamReader类的对象
StreamReader file = new StreamReader("test.txt");
string line;
//从文件中读取内容
while ((line = file.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
catch(Exception e)
{
Console.WriteLine("无法读取文件");
Console.WriteLine(e.Message) ;
}
Console.ReadKey();
//要写入文件中的数据
string[] str = new string[] { "C#中文网", "http://c.biancheng.net/" ,"C#教程"};
//创建StreamWriter类的对象
StreamWriter file = new StreamWriter("demo.txt");
//将数组中的数据写入文件
foreach(string s in str)
{
file.WriteLine(s);
}
file.Close();
//读取文件中的内容
string line = "";
StreamReader readfile = new StreamReader("demo.txt");
while((line=readfile.ReadLine())!=null)
{
Console.WriteLine(line);
}
readfile.Close();
Console.ReadKey();
三、二进制文件读写
C#中的BinaryReader和BinaryWriter类可以用于二进制文件的读写。
示例代码演示二进制文件的读取和写入
namespace _040
{
internal class Program
{
static void Main(string[] args)
{
BinaryWriter bw;
BinaryReader br;
int i = 25;
double d = 3.14157;
bool b = true;
string s = "C#中文网";
//创建文件
try
{
bw = new BinaryWriter(new FileStream("mydata", FileMode.Create));
}
catch(IOException e)
{
Console.WriteLine(e.Message+"\n文件创建失败!");
return;
}
//写入文件
try
{
bw.Write(i);
bw.Write(d);
bw.Write(b);
bw.Write(s);
}
catch(IOException e)
{
Console.WriteLine(e.Message+"\n文件写入失败");
}
bw.Close();
//读取文件
try
{
br = new BinaryReader(new FileStream("mydata", FileMode.Open));
}
catch(IOException e)
{
Console.WriteLine(e.Message+"\n文件打开失败!");
return;
}
try
{
i = br.ReadInt32();
Console.WriteLine("Integer data:{0}",i);
d = br.ReadDouble();
Console.WriteLine("Double data:{0}",d);
b = br.ReadBoolean();
Console.WriteLine("Boolean data:{0}",b);
s = br.ReadString();
Console.WriteLine("String data:{0}",s);
}
catch(IOException e)
{
Console.WriteLine(e.Message+"\n文件读取失败!");
}
br.Close();
Console.ReadKey();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了