【C#】利用System.IO中的File类中的ReadAllText与WriteAllText输入输出小文件

原创 2015年11月19日 16:45:49

当然对于一些大文件的读写还是建议用回传统的文件输入输出流,但是对于一些简单的小文件输入输出直接利用ReadAllText与WriteAllText能够省下不少的代码。你不用判断这个文件是否存在,不用在输入输出完毕处理文件输入输出流,一句代码就能够完事。下面用一个小程序来说明这个例子。

如下图,在FileReadWrite.exe中有一个文本框,用户可以在其中输入内容,如果输入内容有所改变,则在关闭时提醒用户是否保存。

最终的文件载体是我们自己定义的,在与FileReadWrite.exe同一个目录的a.ooo。


首先,先在对Form1窗体进行如下的布局:


与《【C#】简单窗体程序,判断是否闰年,禁止窗体调整大小,关闭窗体前的判断》(点击打开链接)一样将Form1的FormBorderStyle设置为FixedDialog此窗口不可以自由调整大小,同时将MaximizeBox设置为False禁用最大化按钮。

同时为Form1添加Load事件、FormClosing事件,用于窗体初始化时载入文件,关闭时候弹出对话框,询问用户是否保存文件。

之后为Button1、Button2两个按钮添加点击事件,同时为textBox1添加TextChanged事件,一旦用户改变textBox1的内容,则在关闭此窗体的时候弹出询问用户是否保存文件的对话框,同时为textBox1添加KeyDown事件,让用户可以在textBox1使用Ctrl+A全选。

之后修改Form1.cs如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace FileReadWrite
{
    public partial class Form1 : Form
    {
        private string filepath = System.Environment.CurrentDirectory + "\\a.ooo";//取当前exe的目录下的a.ooo路径
        private bool text_change_flag = false;//记录用户是否改变textBox1的内容
        public Form1()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;//设置Form窗体初始化放在屏幕中间
        }

        //窗体关闭时
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (text_change_flag)//用户改变过textBox1的内容
            {
                DialogResult dialog_result = MessageBox.Show("是否保存?", this.Text, MessageBoxButtons.YesNoCancel);
                if (dialog_result == DialogResult.Yes)//用户确定保存之后
                {
                    File.WriteAllText(filepath, textBox1.Text);//写入文件
                    e.Cancel = false;//确定关闭  
                }
                else if (dialog_result == DialogResult.Cancel)
                {
                    e.Cancel = true;//取消关闭
                }
                else
                {
                    e.Cancel = false;//确定关闭  
                }
            }
            else
            {
                e.Cancel = false;//确定关闭  
            }
        }

        //窗体初始化时
        private void Form1_Load(object sender, EventArgs e)
        {
            if (File.Exists(filepath))//如果有这个文件
            {
                textBox1.Text += File.ReadAllText(filepath);//读入这个文件到textBox1
                text_change_flag = false;
            }
        }

        //保存按钮
        private void button1_Click(object sender, EventArgs e)
        {
            text_change_flag = false;
            File.WriteAllText(filepath, textBox1.Text);

        }

        //关闭按钮
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        //如果用户按下Ctrl+A,则全选textBox1的内容
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.A && e.Control)
            {
                textBox1.SelectAll();
            }
        }

        //一旦用户改变textBox1的内容
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            text_change_flag = true;
        }
    }
}


版权声明:本文为博主原创文章,未经博主允许,欢迎随意转载,标好作者+原文地址就可以了!感谢欣赏!觉得好请回个贴!

相关文章推荐

C#控制台基础 file.readalltext使用相对路径与绝对路径去读取 与exe在同一目录下的txt文件

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 ——————————————————————————————————————————————...

C#对XML、JSON等格式的解析

C#对XML、JSON等格式的解析一、C#对XML格式数据的解析1、用XMLDocument来解析 XmlDocument xmlDocument = new XmlDocument(); xmlD...

【C#】文件选择对话框OpenFileDialog与下列列表ComboBox

主要用如下的一个小例子,说明C#窗体中文件选择对话框OpenFileDialog与下列列表ComboBox的应用,点击“选择文件”按钮,就可以打开文件选择对话框OpenFileDialog,无论是多选...

java基础--------IO输入输出之异常、File类和递归

第一部分 异常 异常按照情况的严重性,可以分为Error和Exception。Error是比较严重的情况,比如内存溢出,不是写程序本身的情况。Exception则又按照其出现的时间,分为编译期异常和运...

Collections,泛型,File,IO流,字节/符输入输出流

1.Collections集合帮助类 2.泛型 泛型是一种编译时的一种概念,就是为了能够避免发生类型转换异常。 所谓的泛型就是说在定义方法,类,参数时指定为通用类型,使用这些方法或者...

java利用File类和输入输出流实现文件夹的拷贝

文件夹的拷贝 主题思路 和 获取指定文件夹下的所有文件名 思路 差不多,递归+文件夹|文件判断 如何获取指定文件夹下的所有文件名,大家可以看这篇博客,代码很短,一目了然 http://blog.c...

C#控制台基础 File.WriteAllText,以覆盖的方式将一个string写入txt

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 ——————————————————————————————————————————————...

C# System.IO.Directory、System.IO.File文件操作

System.IO.Directory、System.IO.File文件操作 /// /// 删除文件 /// /// /// public static bool DeleteFile(s...

C#控制台基础 file.readalltext把小容量的txt中的内容放到一个string里

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。 ——————————————————————————————————————————————...

java输入输出处理-文件file

12.1  操作文件的类--File     12.1.1  File类的基本介绍     在整个io包中,唯一与文件本身有关的类就是File类。使用File类可以进行创建或删...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)