分享一段今天写的C#代码
代码实现的功能
1、读取文件
2、解析文件,并将结果输入到另一个文件
代码如下:
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using NPOI.SS.UserModel;
using System.Linq;
using System.Text;
using System.IO;
class MyClass
{
static void Main(string[] args)
{
string fileName = @"D:\123.txt";
List<string> str = ReadTxtFile(fileName);
string path = @"D:\\456.txt";
//创建StreamWriter 类的实例
StreamWriter streamWriter = new StreamWriter(path);
foreach (var s in str)
{
streamWriter.WriteLine(s);
}
//刷新缓存
streamWriter.Flush();
//关闭流
streamWriter.Close();
}
public static List<string> ReadTxtFile(string fileName)
{
List<string> allLines = new List<string>();
StreamReader sr = null;
string line = string.Empty;
int flag = 0;
string strings1 = null;
string strings2 = null;
try
{
if (!string.IsNullOrEmpty(fileName))
{
sr = new StreamReader(fileName, Encoding.Default);
while (!sr.EndOfStream)
{
line = sr.ReadLine();
if (!string.IsNullOrEmpty(line))
{
if (line.Contains('\"'))
{
if (flag == 0)
{
if (line.Contains(@"\"))
{
string[] hang = line.Split(@"\");
strings1 = hang[hang.Length - 1];
}
if (line.Contains(@"/"))
{
string[] hang = line.Split(@"/");
strings1 = hang[hang.Length - 1];
}
}
if (flag == 1)
{
if (line.Contains(@"\"))
{
string[] hang = line.Split(@"\");
strings2 = hang[hang.Length - 1];
}
if (line.Contains(@"/"))
{
string[] hang = line.Split(@"/");
strings2 = hang[hang.Length - 1];
}
}
flag++;
if (flag==2)
{
if (strings1 == strings2)
{
allLines.Add(strings1.Trim());
}
else
{
allLines.Add((strings1+" "+ strings2).Trim());
}
flag = 0;
strings1 = null;
strings2 = null;
}
}
else if (line.Split(@"D:\").Length >= 3)
{
string[] strings = line.Split(@"D:\");
string string4 = strings[1];
string string5 = strings[2];
string string6 = string4.Split(@"\")[string4.Split(@"\").Length -1];
string string7 = string5.Split(@"\")[string5.Split(@"\").Length -1];
if (string6== string7)
{
allLines.Add(string6.Trim());
}
else
{
allLines.Add((string6 + " " + string7).Trim());
}
}
else
{
if (flag == 1)
{
if (line.Contains(@"\"))
{
string[] hang = line.Split(@"\");
strings2 = hang[hang.Length - 1];
}
if (line.Contains(@"/"))
{
string[] hang = line.Split(@"/");
strings2 = hang[hang.Length - 1];
}
}
else if (line.Contains(@"\"))
{
string[] hang = line.Split(@"\");
string strings = hang[hang.Length - 1];
allLines.Add(strings.Trim());
}
else if (line.Contains(@"/"))
{
string[] hang = line.Split(@"/");
string strings = hang[hang.Length - 1];
allLines.Add(strings.Trim());
}
else
{
allLines.Add("");
}
}
}
else
{
allLines.Add("");
}
}
}
return allLines;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (sr != null)
{
sr.Close();
}
}
}
}