C# 对文件的操作网上有很多代码,但是跟自己的具体特殊需求不是相符的代码,所以价值不大。 (需要什么特殊文件操作,就归纳实现什么特殊文件操作的代码)
1、我需要如果有该文件就只是打开,如果没有该文件就创建的功能
FileStream fs = new FileStream("D://tempdata.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //文件地址路径自己定义 , 第二个参数根据自己需求改动 ,我的需求就是OpenOrCreate打开或创建
2、我需要写入文件内容
- 是不是需要覆盖文件之前有的内容,覆盖就只有最后一次写入的内容,不覆盖就把最后一次写入内容添加到文件原内容末尾
StreamWriter writer = new StreamWriter("D://tempdata.txt", true); //可以直接对文件进行写操作,第一个参数是文件地址路径,第二个参数为true就是不覆盖从文件末尾添加新写入的内容,参数为false就是覆盖之前的文件内容
- 是不是需要在写入文件内容里什么地方添加换行,所以在读readline的时候可以读到正确有效的一组数据
StreamWriter writer = new StreamWriter("D://tempdata.txt", true);
writer.Write("the content i want to write to file");
writer.Write(System.Environment.NewLine); //给写入文件的内容,在你需要的地方添加换行符,进行换行操作
3、完整的写入文件内容代码
string sAllTVData = ""; //要写入文件里的内容变量
FileStream fs = new FileStream("D://tempdata.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite); //创建文件对象
StreamReader reader = new StreamReader(fs, System.Text.Encoding.UTF8); //创建文件读取流对象
string s_TVinfo = "";
while ((s_TVinfo = reader.ReadLine()) != null) //实际工作中对写入文件的内容处理,我遇到的是把文件里的内容读出来,然后结合当前手里的数据进行分析处理,然后重新写入文件里,当然不需要这种需求,就只单纯打开文件,写入文件就行了
{
//sAllTVData = sAllTVData + s_TVinfo +"\n";
//sTVDataSum++;
}
string data = "sn=" + _uScanCode + "&workOrderCode=" + sWorkOrderCode + "&lanMac=" + _sRecieveLanMac + "&wifiMac=" + _sRecieveWifiMac + "&btMac=" + _sRecieveBtMac + "&testUserName=" + sTestUser + "&testDateTime=" + sTimeStr;
sAllTVData = data;
StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.UTF8); //创建写入文件流对象,指定文件对象和编码字符集
writer.Write(sAllTVData); //将内容写入文件,默认是覆盖
writer.Write(System.Environment.NewLine); //给写入文件内容后添加换行
//关闭所有打开的文件流对象
writer.Close();
reader.Close();
fs.Close();
4、完整的读取文件内容代码
//读取已经保存的数据
string sAllTVData = "";
FileStream fs = new FileStream("D://tempdata.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
StreamReader reader = new StreamReader(fs, System.Text.Encoding.UTF8);
string s_TVinfo = "";
while ((s_TVinfo = reader.ReadLine()) != null) //按行来读取文件里的内容
{
sAllTVData = sAllTVData + s_TVinfo +"\n";
}
writer.Close();
reader.Close();
fs.Close();