50分求解一个文件处理程序!!!
程序的目的很简单,读如一个二进制文件,如"1.txt(含有汉字的!!!)",在每行后面加个冒号和行号就行了。下面是我写的程序,奇怪的是第一次可以实现目的,如果这里将结果放在"2.txt"中,而第二次再对"2.txt"实施同样的步骤时,就不行了!!
****************************************************************************
例如“1.txt”中内容开始为"你"(就一个汉字“你”)
我的程序的“2.txt”为“你;1”
对"2.txt"再做同样的处理,就得到了"浣?1;1"——显然是个乱码了,大家看看我出错在什么地方了!!
****************************************************************************
自己感觉是在AddRowNum()函数里面的读文件时候出错了!!
不知道写文件(StreamWriter)的地方有问题没有?
大家帮忙啊!!!!!!!!!大家做这题的话,怎么做????
================================================================================
Console.WriteLine("Please input source file path:");
fileName=Console.ReadLine();
Console.WriteLine("Please input a destination Filename you want to put:");
desFileName=Console.ReadLine();
MyFileLibrary.AddRowNum(fileName,desFileName);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
下面是我的主要的处理函数!
public static int AddRowNum( string fileName,string desFileName)
{
int temp = 1;
StreamReader sr=new StreamReader(fileName,System.Text.Encoding.Default);
String input;
StringBuilder newStrs = new StringBuilder(); //将文件内容放在StringBuilder
while ((input=sr.ReadLine())!=null) //每次读入文件的一行
{
if(input.Length!=0)
{//自己感觉这里面有问题!!!!!!
string s = input+";"+temp.ToString()+"\n";
char[] chrs = s.ToCharArray();
newStrs.Append( chrs );
temp++;
}
}
newStrs.Remove(newStrs.Length-1,1);
sr.Close();
StreamWriter sw = File.CreateText(desFileName);
string delimStr = "\n";
char [] delimiter = delimStr.ToCharArray();
string[] newStrings = newStrs.ToString().Split(delimiter);
foreach(string s in newStrings)
{
sw .WriteLine(s);
}
sw.Close();
return 1;
}
else
Console.WriteLine("Can not find file,please check your .");
return -1;
}