用FileStream这样生成txt文件,会有限制吗?
private void button1_Click(object sender, System.EventArgs e)
{
FileStream file1=new FileStream("c:\\f2.txt",FileMode.Create);
    StreamWriter ww=new StreamWriter(file1,System.Text.Encoding.Default);
string [] byData =new string[100];
string [] temp =new string[500];
int num1;
int num2=0;
int num3=0;
int num4=0;
int endif=0;
int find=0;
            string [] split;
string str;
string tt="";
string search="";
int vt=Convert.ToByte(textBox2.Text);
int szfgf=Convert.ToByte(textBox4.Text);
if (this.folderBrowserDialog1.ShowDialog() == DialogResult.OK) 
{ tt= folderBrowserDialog1.SelectedPath;
}
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{

search = this.openFileDialog1.FileName;
FileStream searchfile=new FileStream(search,FileMode.Open);
StreamReader srd=new StreamReader(searchfile,Encoding.Default);
                endif=0;
for (num1 = 0; num1< 100; num1++)
{
str=srd.ReadLine();
byData[num1]=str;
while (srd.Peek()!=-1)
{
endif=200;
break;
} if(endif==200)
{
                        num2=num1;
break;
}
}
}
string[] dirs=Directory.GetFiles(tt,"*.txt");
foreach(string dir in dirs)
{
FileStream file2=new FileStream(dir,FileMode.Open);
StreamReader srd=new StreamReader(file2,Encoding.Default);
while (srd.Peek()!=-1)
{
str=srd.ReadLine();
split = str.Split(new Char [] {'#'});
if(split[0]=="START")
{
for (num1 = 0; num1< 1000; num1++)
{
temp[num1]=str.ToString();
str=srd.ReadLine();
split = str.Split(new Char [] {'#'});
if (num1+2==szfgf )
{
if (byData[0]==split[6])
find=-1;
//find=str.ToString().LastIndexOfAny(byData[num2].ToCharArray());
}
if(split[0]=="END")
{
temp[num1]=str.ToString();
num3=num1;
num1=10000;
}
}
if (find<=-1)
{
for (num4 = 0; num4<= num3; num4++)
{
ww.WriteLine(temp[num4]);
temp[num4]="";
}
find=0;
}
else
{
for (num4 = 0; num4<= num3; num4++)
{
temp[num4]="";
}
find=0;
} }

}
}
Application.Exit();
}

解决方案 »

  1.   

    用StreamWriter写入txt文件,txt文档不全!!苦闷!是否生成的txt文件限制写入的字节数???
      

  2.   

    加两句:
    ww.Flush() ;
    ww.Close() ;见:
    private void button1_Click(object sender, System.EventArgs e)
    {
    FileStream file1=new FileStream("c:\\f2.txt",FileMode.Create);
    StreamWriter ww=new StreamWriter(file1,System.Text.Encoding.Default);
    string [] byData =new string[100];
    string [] temp =new string[500];
    int num1;
    int num2=0;
    int num3=0;
    int num4=0;
    int endif=0;
    int find=0;
    string [] split;
    string str;
    string tt="";
    string search="";
    int vt=Convert.ToByte(textBox2.Text);
    int szfgf=Convert.ToByte(textBox4.Text);
    if (this.folderBrowserDialog1.ShowDialog() == DialogResult.OK) 
    { tt= folderBrowserDialog1.SelectedPath;
    }
    if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
    { search = this.openFileDialog1.FileName;
    FileStream searchfile=new FileStream(search,FileMode.Open);
    StreamReader srd=new StreamReader(searchfile,Encoding.Default);
    endif=0;
    for (num1 = 0; num1< 100; num1++)
    {
    str=srd.ReadLine();
    byData[num1]=str;
    while (srd.Peek()!=-1)
    {
    endif=200;
    break;
    } if(endif==200)
    {
    num2=num1;
    break;
    }
    }
    }
    string[] dirs=Directory.GetFiles(tt,"*.txt");
    foreach(string dir in dirs)
    {
    FileStream file2=new FileStream(dir,FileMode.Open);
    StreamReader srd=new StreamReader(file2,Encoding.Default);
    while (srd.Peek()!=-1)
    {
    str=srd.ReadLine();
    split = str.Split(new Char [] {'#'});
    if(split[0]=="START")
    {
    for (num1 = 0; num1< 1000; num1++)
    {
    temp[num1]=str.ToString();
    str=srd.ReadLine();
    split = str.Split(new Char [] {'#'});
    if (num1+2==szfgf )
    {
    if (byData[0]==split[6])
    find=-1;
    //find=str.ToString().LastIndexOfAny(byData[num2].ToCharArray());
    }
    if(split[0]=="END")
    {
    temp[num1]=str.ToString();
    num3=num1;
    num1=10000;
    }
    }
    if (find<=-1)
    {
    for (num4 = 0; num4<= num3; num4++)
    {
    ww.WriteLine(temp[num4]);
    temp[num4]="";
    }
    find=0;
    }
    else
    {
    for (num4 = 0; num4<= num3; num4++)
    {
    temp[num4]="";
    }
    find=0;
    }
    ww.Flush() ;
    ww.Close() ;
    } }
    }
    Application.Exit();
    }
      

  3.   

    加了这两句,你看看,你的txt文件有没有写全?
    ww不关掉,最后一句写不上去的。