C#:通过文件流的形式访问文件。
代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _01文件流的操作
{
class Program
{
static void Main(string[] args)
{
//文件流操作的第一种方式:FileStream 按照字节进行读取,应用更加的广泛;,第二种方式 StreamReader和StreamWriteer按照文本的方式进行读取
//操作自己
//第一个参数表示操作的文件的路径,第二个参数表示文件的打开方式,第三个参数表示对文件的操作的方式。
// FileStream s = new FileStream(@"C:\Users\张旗\Desktop\文件流.txt",FileMode.OpenOrCreate,FileAccess.Read);
//byte[] b = new byte[1024 * 1024];//创建字节数组
// int res= s.Read(b,0,b.Length); //返回实际的有效字节数
//为了防止乱码需要注意文件读取的格式
// string str = Encoding.UTF8.GetString(b,0,res); //将字节数组转化成为字符串,,注意需要说明转化的大小,需要转化的文件中实际的有效字节数
//关闭数据流
// s.Close();
//释放资源
// s.Dispose();
// Console.WriteLine(str);
// Console.ReadKey();
#region 文件的写入
string str = "sjdhkjasdwosguniaho你好,程序员,代码的世界";
string str1;
//创建数据流的操作对象,将数据流的对象写在usin()中不需要进行内存的释放,以及数据流的关闭,系统会自动的调用该函数
using (FileStream ss = new FileStream(@"D:\桌面转移\text.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
{//读取文件
byte[] b = new byte[str.Length];
b = Encoding.Default.GetBytes(str); //将字符串转化为字节数组
ss.Write(b, 0, b.Length); //如果操作的文件中已经有内容,不会直接进行全部的覆盖,只会根据写入的字节大小进行覆盖
byte[] c = new byte[1024];
//注意:这里前面进行了写文件将文件打开,后面也可以进行读取的操作。需要与前面的进行区分(前面的文件好像在进行读、写单一操作以后必须要将文件关闭以后在进行操作,否则将会出现错误)
// ss.Read(c, 0,80);
//str1 = Encoding.UTF8.GetString(c);
}
//创新创建的以个读取文件的数据流对象,在进行文件的读取时将会从文件开始进行读取
using (FileStream s1 = new FileStream(@"D:\桌面转移\text.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
{//读取文件
byte[] b = new byte[str.Length];
// b = Encoding.Default.GetBytes(str); //将字符串转化为字节数组
// s1.Write(b, 0, b.Length); //如果操作的文件中已经有内容,不会直接进行全部的覆盖,只会根据写入的字节大小进行覆盖
byte[] c = new byte[1024];
//注意:这里前面进行了写文件将文件打开,后面也可以进行读取的操作。需要与前面的进行区分(前面的文件好像在进行读、写单一操作以后必须要将文件关闭以后在进行操作,否则将会出现错误)
s1.Read(c, 1, 80);
str1 = Encoding.Default .GetString(c); //注意解码的方式需要与编码的方式相同
}
Console.WriteLine(str1);
Console.WriteLine("写入完成");
Console.ReadKey();
#endregion
}
}
}
运行结果:
使用文件的形式对视频文件进行读写:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _02实现多媒体文件的复制
{
class Program
{
static void Main(string[] args)
{
//获取源文件路径
string source = @"E:\本科毕业设计-张旗\毕业设计展示视频\1.mp4";
//获取目标文件的路径
string target = @"E:\本科毕业设计-张旗\毕业设计展示视频\new.mp4";
GetDuoMeiTI(source,target);
Console.WriteLine("复制成功");
Console.ReadKey();
}
//创建一个函数,将源文件路径与目标文件路径作为形式参数传输
public static void GetDuoMeiTI(string source, string target)
{
//创建读取文件流,使用using关键字修饰的数据流,在程序运行结束后将会自动的关闭数据流,以及释放资源
using (FileStream s = new FileStream(source, FileMode.Open, FileAccess.Read))
{
//创建写入文件流,文件流的嵌套
using (FileStream s1 = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))
{
//创建用于接收读取的字节的数组
Byte[] b = new byte[1024 * 1024 * 5];
//开始读取文件
while (true)
{
int res = s.Read(b, 0, b.Length);
//当文件读取完毕以后就跳出循环
if (res == 0)
{
break;
}
//开始写入文件
s1.Write(b, 0, b.Length);
}
}
}
}
}
}
代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _03Streamreader
{
class Program
{
static void Main(string[] args)
{
////使用StreamReader文件操作流,操作的方式是按字节进行操作的,操作的都是文本文件。
////获取文件路径
//string source = @"D:\桌面转移\重点总结\C#概述.txt";
////创建数据流对象
//using (StreamReader s = new StreamReader(source, Encoding.UTF8, true)) { //第一个参数表示读取文件的路径,第二表示读取的格式,
// //开始读取文件
// while (!s.EndOfStream) {
// Console.WriteLine(s.ReadLine()); //按行进行读取
//}
//}
// Console.ReadKey();
//创建写入数据流对象
using (StreamWriter w = new StreamWriter(@"D:\桌面转移\重点总结\newC.txt" ,true)) {
//开始写入文件,****************对于文件的操作,该方法FIleStream简单*************
w.Write("youmeiouadjkasdjkalsajsidjisd");//使用这样的方式将不会覆盖文件中原有的数据。
Console.WriteLine("写入成功");
}
//注意console.ReadKey的位置
Console.ReadKey();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2020-09-17 数组实现 最高分、最低分、平均分
2020-09-17 数组的定义及使用