日期:2014-05-18  浏览次数:20738 次

C#文件和流的问题
我们要两个代码,不知道从什么地方开始下手.因为我们这章学的是文件和流所以要用到这些东西
1,编程比较两个文件是否相同.
2.在窗体中放置一个编辑框空间,用来输入小雨255的数,放置2个按钮控件,标题分别为“输入下一个”和“存输入的数”。单机标题为:“村输入的数”按钮,把输入的所有字节类型数据存到文件中。单机标题“输入下一个”按钮,记录本次数日的书,晴空编辑框控件,准备输入下一个。在增加一个标题为“读文件”的按钮,单击该按钮,读如输入内容,在listbox控件显示。如果村委int类型或字符串,应如何实现?

因为我们正在学这个,而且我对这些编程类问题超白吃,所以想大家来帮帮忙吧。。。

因为没有那么多的分数 所以不能给大家了哦

------解决方案--------------------
StreamReader hc = new StreamReader(@"c:\1.txt");
string ss = hc.ReadToEnd();
StreamReader hcg = new StreamReader(@"d:\2.txt");
string sss = hcg.ReadToEnd();
if (ss == sss)
{
MessageBox.Show("同");
}
else
{
MessageBox.Show("不同");
}

------解决方案--------------------
private void button3_Click(object sender, EventArgs e)
{
StreamReader hc = new StreamReader( @"c:\1.txt");
string ss = hc.ReadToEnd();
this.listBox1.Items.Add(ss);
}

private void button1_Click(object sender, EventArgs e)
{
StreamWriter mm = new StreamWriter(@"c:\1.txt", false);
string sq = this.textBox1.Text;
mm.WriteLine(sq);
mm.Close();
MessageBox.Show("保存完成", "提示"); 
}

private void button2_Click(object sender, EventArgs e)
{
this.textBox1.Clear();
StreamWriter mm = new StreamWriter(@"c:\1.txt", false);
string sq = this.textBox1.Text;
mm.WriteLine(sq);
mm.Close();
MessageBox.Show("保存完成", "提示"); 

}
------解决方案--------------------
这样应该可以吧,调整缓冲区大小看多少的时候速度快,内存占用也可以接受
C# code
            int bufSize = 2048000;
            byte[] buf1 = new byte[bufSize];
            byte[] buf2 = new byte[bufSize];
            using (FileStream fs1 = new FileStream("C:\\Test1.data", FileMode.Open))
            using (FileStream fs2 = new FileStream("C:\\Test1.data", FileMode.Open))
            {
                if (fs1.Length != fs2.Length) return false;
                while (true)
                {
                    int count = fs1.Read(buf1, 0, bufSize);
                    fs2.Read(buf2, 0, bufSize);
                    for (int i = 0; i < count; i++)
                    {
                        if (buf1[i] != buf2[i])
                            return false;
                    }
                    if (count < bufSize) break;
                }
            }
            return true;