現在的任務就是做一個大文件解析的桌面應用小程序,具體需求就是:將一個很大的文件里的數據按一定標志拆分然后分別保存到某個文件夾下面。
解析的文件內容為以下內容:
windows 應用小程序界面
具體代碼主要分為兩步:
private void button1_Click(object sender, EventArgs e) { OpenFileDialog op = new OpenFileDialog();//創建打開文件夾對話框對象 //op.ShowDialog(); //實現對話框展示 //op.Filter = "fasta文件|*.fasta";//設置文件后綴過濾 if (op.ShowDialog() == System.Windows.Forms.DialogResult.OK) { filePath = op.FileName; //獲取所選文件的全路徑 nowFilePath=filePath; //TextBox1.Text = File.ReadAllText(filePath); //通過textbox1 } }
第一個按鈕主要是進行打開文件選擇文件的操作;
private void button2_Click(object sender, EventArgs e) { string totalContent = ""; int i = 1; string directoryPath = @"D:/xyyFile3/"; if (!Directory.Exists(directoryPath))//如果路徑不存在 { Directory.CreateDirectory(directoryPath);//創建一個路徑的文件夾 } var reader = new StreamReader(nowFilePath); var content = reader.ReadLine();//讀一行 totalContent = content; if(content.Substring(0, 1) ==">")//判斷開頭是否為> { content = reader.ReadLine();//是,繼續讀取一行 totalContent += content; while (content.Substring(0, 1)!=">"&& content != null) { content = reader.ReadLine(); if (content == null) { FileStream fs1 = new FileStream("D:\\xyyFile3\\" + i + ".txt", FileMode.Create, FileAccess.Write);//創建寫入文件 StreamWriter sw = new StreamWriter(fs1); //totalContent = totalContent.Replace(")", ")" + "\r\n"); sw.WriteLine(totalContent); sw.Close(); fs1.Close(); break; } else { } while(content.Substring(0, 1) == ">") { // totalContent = content; if (!File.Exists("D:\\xyyFile3")) { FileStream fs1 = new FileStream("D:\\xyyFile3\\" + i + ".txt", FileMode.Create, FileAccess.Write);//創建寫入文件 StreamWriter sw = new StreamWriter(fs1); //totalContent = totalContent.Replace(")", ")" + "\r\n"); sw.WriteLine(totalContent); sw.Close(); fs1.Close(); } else { FileStream fs = new FileStream("D:\\xyyFile2\\" + i + ".txt", FileMode.Open, FileAccess.Write); StreamWriter sr = new StreamWriter(fs); sr.WriteLine(totalContent);//開始寫入值 sr.Close(); fs.Close(); } i++; totalContent = content; content = reader.ReadLine(); } totalContent += content; } } MessageBox.Show("解析完成,默認保存在D://xyyFile2中"); }
第二個按鈕就是進行文件內容的解析。