标签:文件 IO C# 写入 File 操作 FileInfo
C#的IO流的File和FileInfo操作实例
C#中操作文件的最基本类就是IO类,里面就定义了很多衍生类和方法给我们对文件进行处理、转换、执行等操作;其中流分为写入流(输入流)和读取流(输出流),输出流用于对文件进行读取流操作,输入流用于对文件进行写入数据;
其中IO流中我们比较常用的类有BinaryReader(从二进制流读取原始数据), BinaryWriter(以二进制格式写入原始数据),BufferedStream(字节流的临时存储), Directory(有助于操作目录结构), DirectoryInfo(用于对目录执行操作),File(有助于处理文件),FileInfo(用于对文件执行操作), FileStream(用于文件中任何位置的读写)
1、 File 和 FileInfo 这两个类主要是对文件进行处理和执行的操作,其中File类是静态类,不需要实例化就可以直接调用里面的方法,而FileInfo则需要实例化对象,其效率相对于File类比较低,当我们只需要对单个文件进行少量操作时可以用File类,如果对单个文件进行多个操作时就可以实例化FileInfo使用。下面是个简单的操作例子:
namespace IO流
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string strDirectory = "E:\\IO流文件夹"; //声明一个文件夹
string strFiles = "E:\\IO流文件夹\\mytext.txt"; //声明一个文件text
string strFiles1 = "E:\\IO流文件夹\\mytext1.txt"; //声明一个文件text1
if (!Directory.Exists(strDirectory)) //判断是否纯在该文件夹,不存在就创建
{
Directory.CreateDirectory(strDirectory); //创建文件夹
}
//下面两个方法,执行其中一个就行了;
//1、File新增文件并往txt文件里面写入文本内容,如果已经存在就覆盖;第一个参数是路径,第二个参数是文本内容
File.WriteAllText(strFiles,textBox2.Text);
//// 2、FileInfo新增文件
//FileInfo fs = new FileInfo(strFiles); //实例化FileInfo类,对strFiles进行执行
FileInfo cpfs = new FileInfo(strFiles1);//初始化实例化fs复制来的文件,
if (cpfs.Exists) //判断fs复制得到的文件是否纯在,不存在下面才可以fs复制得到strFiles1
{
cpfs.Delete(); //存在就删除
}
// StreamWriter stw = fs.CreateText();//实现文本写入流
// stw.WriteLine(textBox2.Text.ToString());//写入文本内容
// stw.Close();//关闭StreamWriter 写入流
// //复制文件
// fs.CopyTo(strFiles1);
}
}
}
上面就是File和FileInfo对文集进行操作和执行的实例,不过这里是通过文本来展示,因为刚试着去理解IO流,只能从简单的文本出发,后期要处理图片,视频等文件时,就是通过二进制读取和写入文件流的了;从上面可以看到我们对单个文件进行单个操作时用File会比较方便,比如我要给一个文件写入内容时,通过File就可以直接写入了,如果打算多次重用某个对象就用FileInfo。上面的代码是Window From 的代码,通过页面输入内容添加到具体文件夹\文件中,并且复制该文件到新文件中,结果如下图;
窗体截图
结果截图:
根据上面代码和两张截图可以看到我们可以通过使用File类的WriteAllText实现新增文本文件,亦可以通过实例化FileInfo 对象实现新增文本文件,复制文本文件等一系列操作;在这就不一一列举了!
标签:文件,IO,C#,写入,File,操作,FileInfo 来源: https://blog.csdn.net/weixin_44543135/article/details/90612650
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。