首页 > 代码库 > 文件流FileStream
文件流FileStream
- FileStream对象表示在磁盘或网络路径上指向文件的流
- 使用 FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作
- FileStream 对输入输出进行缓冲,从而提高性能
- 为什么不用File.ReadAllText()? 好处之一就是:对于大文件来说,FileStream可以对文件采取分段读取,即每次只读取一部分到内存。
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace FileOperation{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } //选择文件框 private void btnOpenFile_Click(object sender, EventArgs e) { //new 选择文件框 对象 OpenFileDialog ofd = new OpenFileDialog(); //设置选择文本框的起始位置---桌面 ofd.InitialDirectory = @"C:\Users\lantian\Desktop"; //用户点击确认 if (ofd.ShowDialog() == DialogResult.OK) { //保存当前选择文件的路径,显示在文本框 txtOpenFilePath.Text = ofd.FileName; } } /// <summary> /// 保存文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSaveFile_Click(object sender, EventArgs e) { //获取多行文本的内容 string strContent = txtInPut.Text; //实例化 FileStream---导入命名空间using System.IO; //参数:文件路径,制定操作系统打开文件的方式Create----有则覆盖,无则创建 //凡是和网络,文件操作相关的,都应该(1)try...catch(2)销毁,用using using (FileStream fs = new FileStream(txtOpenFilePath.Text,FileMode.Create)) { //创建字符数组,并指定字符数组的大小1024*1024*4,相当于4M //byte[] byteText=new byte[1024*1024*4]; //字符串转换成字节数组----Encoding.UTF8.GetBytes这个方法。 byte[] byteText = Encoding.UTF8.GetBytes(strContent); //参数:要写入到文件的数据数组,从数组的第几个开始写,一共写多少个字节 fs.Write(byteText,0,byteText.Length); MessageBox.Show("保存成功!"); } } /// <summary> /// 读取文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnReadFile_Click(object sender, EventArgs e) { //创建文件流(文件路径,文件操作方式.打开) using (FileStream fs = new FileStream(txtOpenFilePath.Text, FileMode.Open)) { //创建一个容量4M的数组 byte[] byteText = new byte[1024 * 1024 * 4]; //从文件中读取数据写入到数组中(数组对象,从第几个开始读,读多少个) //返回读取的文件内容真实字节数 int length =fs.Read(byteText,0,byteText.Length); //如果字节数大于0,则转码 if (length > 0) { //将数组转以UTF-8字符集编码格式的字符串 txtInPut.Text = Encoding.UTF8.GetString(byteText); MessageBox.Show("读取成功"); } } } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。