码迷,mamicode.com
首页 > 其他好文 > 详细

文件流FileStream

时间:2014-06-21 07:41:38      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:des   style   class   blog   tar   ext   

  1. FileStream对象表示在磁盘或网络路径上指向文件的流
  2. 使用 FileStream 类对文件系统上的文件进行读取、写入、打开和关闭操作
  3. FileStream 对输入输出进行缓冲,从而提高性能
  4. 为什么不用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("读取成功");
                }
            }
        }
    }
}

  

文件流FileStream,布布扣,bubuko.com

文件流FileStream

标签:des   style   class   blog   tar   ext   

原文地址:http://www.cnblogs.com/skyl/p/3795280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!