文件读写,改进版
2018-06-27 09:52:32来源:未知 阅读 ()
文件读写:需要实现的功能是:点击1,弹出文件打开对话框OpenFiledialog,选择要读取的文件,点击确定之后,把文件的路径显示在1上,然后点击读取,把文件的内容显示在3上面;
同理,文件的写入,我们在3中写好内容之后,点击2,弹出文件保存对话框SaveFiledialog,然后选择好路径之后,点击写入,就将我们在3中写好的内容,保存在指定的路径了。
现在实现功能:
private void txtReadPath_Click(object sender, EventArgs e) { //打开文件对话框 using (OpenFileDialog openFileDialog = new OpenFileDialog()) { if (openFileDialog.ShowDialog() == DialogResult.OK) { //显示文件的全路径 txtReadPath.Text = openFileDialog.FileName; } } } /// <summary> /// 读取文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnNewRead_Click(object sender, EventArgs e) { //创建文件流(读文件的时候,FileMode选择Open) using (FileStream fileRead = new FileStream(txtReadPath.Text,FileMode.Open)) { //创建btpe数组 byte [] fileByte=new byte[fileRead.Length]; //把文件数据读取到数组中 fileRead.Read(fileByte, 0, fileByte.Length); //现在将数据转化为string格式的数据,好显示在txt控件中,通过下面的方法把byte数组转化为string字符串 txtContent.Text= Encoding.Default.GetString(fileByte); } }
这部分就实现了读取文件的数据到文本框中,其中Encoding.Default.GetString这个方法只能,读取文本文件。不能读取Word,所谓文本文件就是可以用记事本打开的。
Encoding.Default.GetString这个方法还有个问题,会乱码:
解决方法:
txtContent.Text = Encoding.GetEncoding("utf-8").GetString(fileByte);
修正之后:
好了,下面开始文件的写入功能实现:
步骤:我们先在文本框中输入内容,然后点击第二个文本框,弹出保存对话框,我们选择路径,输入要保存的名字(带上后缀)。然后点击保存。
所有的代码如下:
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 FileReadDemo { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void txtReadPath_Click(object sender, EventArgs e) { //打开文件对话框 using (OpenFileDialog openFileDialog = new OpenFileDialog()) { if (openFileDialog.ShowDialog() == DialogResult.OK) { //显示文件的全路径 txtReadPath.Text = openFileDialog.FileName; } } } /// <summary> /// 读取文件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnNewRead_Click(object sender, EventArgs e) { //创建文件流(读文件的时候,FileMode选择Open) using (FileStream fileRead = new FileStream(txtReadPath.Text,FileMode.Open)) { //创建btpe数组 byte [] fileByte=new byte[fileRead.Length]; //把文件数据读取到数组中 fileRead.Read(fileByte, 0, fileByte.Length); //现在将数据转化为string格式的数据,好显示在txt控件中,通过下面的方法把byte数组转化为string字符串 //txtContent.Text= Encoding.Default.GetString(fileByte); //这个方法会乱码、 txtContent.Text = Encoding.GetEncoding("utf-8").GetString(fileByte); } } /// <summary> /// 文件写入 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void textWritePath_Click(object sender, EventArgs e) { //创建文件保存对话框 using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { if (saveFileDialog.ShowDialog() == DialogResult.OK) { //全路径 textWritePath. Text = saveFileDialog.FileName; } } } private void btnWrite_Click(object sender, EventArgs e) { //将内容写入到指定的路径文件中 using (FileStream fileWrite = new FileStream(textWritePath.Text.Trim(),FileMode.Create)) { //Write方法,需要传入Byte数组,这个时候,就有个问题了,我们在文本控件中,输入的内容是字符串的,不过同理,字串串也可以转化为byte数组 byte [] fileWriteByte=Encoding.GetEncoding("utf-8").GetBytes(txtContent.Text.Trim()); fileWrite.Write(fileWriteByte, 0, fileWriteByte.Length); } } } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- QT5 解析JSON文件 2020-06-09
- STM32F103驱动M24256 256k存储芯片进行读写 2020-05-28
- QTableView与Excel之间的文件打开与保存 2020-05-26
- C++ 文件输入输出 2020-03-27
- [C++]HelloWorld背后的故事!总结一下在我们运行exe可执行文 2020-03-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash