目的和要求:
理解文件的概念;掌握文件读和写的使用;掌握文件处理的方法。 实验方法(包括实验中需要注意的问题等): 1. 在VS下,新建一个窗体界面应用程序。 2. 在解决方案资源管理其中创建一个Student类。
3. 通过button1、button2按钮实现Student文件的读写操作,通过button3、button4按钮实现文件的浏览操作。 实验重点(主要解决的问题和达到的目的):
1. 学会编写文件的读写操作代码。 2. 理解文件的基本操作。
实验难点(预计实验过程中会遇到的问题和解决方案): 1.编写文件的读写操作代码。
实验仪器和材料:
计算机,Windows XP, VS2008
实验报告要求和思考题: 提交实验报告。
大理学院课程教案(教学内容)
实验六 文件读写操作
一、实验内容与步骤(要求交实验报告的实验项目详细步骤由学生填写)
实验内容:
1.按要求调试下列程序:
构造如下所示界面,完成学生信息的IO操作。学生信息存储在D盘根目录Student.txt文件中。信息显示使用RichTextBox控件。
实现各操作的参考代码如下:
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms; using System.IO;
namespace 读写文件 {
大理学院课程教案(教学内容)
public partial class Form1 : Form {
List string[] splitStrings; string[] splitStrings1; string[] splitStrings2; char[] separator = {' '}; char[] separator1 = { '=' }; int i = 0; public Form1() { InitializeComponent(); stList = new List private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == \"\" ) { MessageBox.Show(\"学号不能为空!\"); } else if (textBox2.Text == \"\") { MessageBox.Show(\"姓名不能为空!\"); } else if (textBox3.Text == \"\") { MessageBox.Show(\"班级不能为空!\"); } else if (textBox4.Text == \"\") { MessageBox.Show(\"专业不能为空!\"); } else { FileStream fs = new FileStream(\"d://student.txt\", FileMode.OpenOrCreate | FileMode.Append, FileAccess.Write); StreamWriter streamWriter = new StreamWriter(fs); streamWriter.WriteLine(\"学号=\" + textBox1.Text + \" \" + \"姓名=\" + textBox2.Text + \" \" + \"班级=\" + textBox3.Text + \" \" + \"专业=\" + textBox4.Text); textBox1.Clear(); textBox2.Clear(); textBox3.Clear(); textBox4.Clear(); streamWriter.Flush(); streamWriter.Close(); } } private void button2_Click(object sender, EventArgs e) { FileStream fs = new FileStream(\"d://student.txt\", FileMode.Open, FileAccess.Read); 大理学院课程教案(教学内容) StreamReader streamReader = new StreamReader(fs); this.richTextBox1.Text = \"\"; string strLine = streamReader.ReadLine(); while (strLine != null) { this.richTextBox1.Text += strLine + \"\\n\"; st = new Student(); splitStrings = strLine.Split(separator);//以空格分隔符拆分字符串 for (int i = 0; i < splitStrings.Length;i++ ) { splitStrings1 = splitStrings[i].Split(separator1);//以=号分隔符拆分字符串 splitStrings2[i] = splitStrings1[1]; } st.xh = splitStrings2[0]; st.xm = splitStrings2[1]; st.bj = splitStrings2[2]; st.zy = splitStrings2[3]; stList.Add(st);//还原学生对象并存储在list表里 strLine = streamReader.ReadLine(); } streamReader.Close(); textBox8.Text = stList[0].xh; textBox7.Text = stList[0].xm; textBox6.Text = stList[0].bj; textBox5.Text = stList[0].zy; } private void button3_Click(object sender, EventArgs e) { if((stList.ToArray()).Length<=0) { MessageBox.Show(\"当前记录为0条\"); } if (i == 0&&(stList.ToArray().Length>0)) { textBox8.Text = stList[0].xh; textBox7.Text = stList[0].xm; textBox6.Text = stList[0].bj; textBox5.Text = stList[0].zy; } if ((i > 0) && (i < stList.ToArray().Length)) { i = i - 1; textBox8.Text = stList[i].xh; textBox7.Text = stList[i].xm; textBox6.Text = stList[i].bj; textBox5.Text = stList[i].zy; } } private void button4_Click(object sender, EventArgs e) { if ((stList.ToArray()).Length <= 0) { MessageBox.Show(\"当前记录为0条\"); } if (i == (stList.ToArray()).Length&&i!=0) { 大理学院课程教案(教学内容) textBox8.Text = stList[i].xh; textBox7.Text = stList[i].xm; textBox6.Text = stList[i].bj; textBox5.Text = stList[i].zy; } if (i >= 0 && i < (stList.ToArray()).Length-1) { i = i + 1; textBox8.Text = stList[i].xh; textBox7.Text = stList[i].xm; textBox6.Text = stList[i].bj; textBox5.Text = stList[i].zy; } } } } 学生类定义如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 读写文件 { public class Student { public string xh; public string xm; public string bj; public string zy;//同学把这些变量改为属性定义 } } 大理学院课程教案(教学总结) 因篇幅问题不能全部显示,请点此查看更多更全内容