【1】首先我們定義一段假數據,這里以一個string為例字
static void Main(string[] args)
{
string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了";
}
【2】接着我們將這個數據寫入.txt文件
代碼如下:
/// <summary>
/// 保存數據data到文件的處理過程;
/// </summary>
/// <param name="data"></param>
public static String SavaProcess(string data) {
System.DateTime currentTime = System.DateTime.Now;
//獲取當前日期的前一天轉換成ToFileTime
string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd");
//按照日期建立一個文件名
string FileName = "MyFileSend" + strYMD + ".txt";
//設置目錄
string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir";
//判斷路徑是否存在
if(!System.IO.Directory.Exists(CurDir)){
System.IO.Directory.CreateDirectory(CurDir);
}
//不存在就創建
String FilePath = CurDir + FileName;
//文件覆蓋方式添加內容
System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false);
//保存數據到文件
file.Write(data);
//關閉文件
file.Close();
//釋放對象
file.Dispose();
return FilePath;
}
結果是返回一個文件路徑,根據具體場合可返回,也可不返回;我們來測試一下文件是否生成成功,我們在Main函數中調用這個方法,代碼如下:
static void Main(string[] args)
{
string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了";
String filePath = SavaProcess(data);
Console.WriteLine(filePath);
}
運行結果如下:

很顯然,在相關目錄下,生成了想對應的文件;我們在看看cmd中打印出了如下路徑:
D:\VSProject\SavaProcessToFile\SavaProcessToFile\bin\Debug\SaveDirMyFileSend20170628.txt
生成的這個路徑對我們接下來的工作很重要,讀取文本數據的時候需要用到;
【3】讀取.txt文件數據
我們再定義一個讀取數據的方法:
/// <summary>
/// 獲取文件中的數據
/// </summary>
/// <param name="args"></param>
public static string fileToString( String filePath ){
string strData = "";
try
{
string line;
// 創建一個 StreamReader 的實例來讀取文件 ,using 語句也能關閉 StreamReader
using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath))
{
// 從文件讀取並顯示行,直到文件的末尾
while ((line = sr.ReadLine()) != null)
{
//Console.WriteLine(line);
strData = line;
}
}
}
catch (Exception e)
{
// 向用戶顯示出錯消息
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
return strData;
}
看見沒?我們這邊傳入的參數就是生成文件的那個路徑,注意,參數的類型是String表示文本的,而不是string表示字符串的,因為我再生成路徑的時候就是用的String,所以這里對應起來;
接下來,我們來測試一下,看我們有沒有讀取文件成功,看cmd中是否會出現我們最初寫入的那個字符串?我們在Main函數中調用方法,代碼如下:
static void Main(string[] args)
{
string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了";
String filePath = SavaProcess(data);
string strData = fileToString(filePath);
Console.WriteLine(strData);
}
運行結果如下:

結果出現了最開始存的那個字符串;
【4】寫入和讀取過程完整代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SavaProcessToFile
{
class Program
{
/// <summary>
/// 保存數據data到文件的處理過程;
/// </summary>
/// <param name="data"></param>
public static String SavaProcess(string data) {
System.DateTime currentTime = System.DateTime.Now;
//獲取當前日期的前一天轉換成ToFileTime
string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd");
//按照日期建立一個文件名
string FileName = "MyFileSend" + strYMD + ".txt";
//設置目錄
string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir";
//判斷路徑是否存在
if(!System.IO.Directory.Exists(CurDir)){
System.IO.Directory.CreateDirectory(CurDir);
}
//不存在就創建
String FilePath = CurDir + FileName;
//文件覆蓋方式添加內容
System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false);
//保存數據到文件
file.Write(data);
//關閉文件
file.Close();
//釋放對象
file.Dispose();
return FilePath;
}
/// <summary>
/// 獲取文件中的數據
/// </summary>
/// <param name="args"></param>
public static string fileToString(String filePath){
string strData = "";
try
{
string line;
// 創建一個 StreamReader 的實例來讀取文件 ,using 語句也能關閉 StreamReader
using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath))
{
// 從文件讀取並顯示行,直到文件的末尾
while ((line = sr.ReadLine()) != null)
{
//Console.WriteLine(line);
strData = line;
}
}
}
catch (Exception e)
{
// 向用戶顯示出錯消息
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
return strData;
}
static void Main(string[] args)
{
string data = "我的數據要開始存入文件了,我好開心啊!覆蓋了嗎?好像覆蓋了,真的覆蓋了";
String filePath = SavaProcess(data);
string strData = fileToString(filePath);
Console.WriteLine(strData);
}
}
}
本文源於zhuxiaoge(http://www.cnblogs.com/zhuxiaoge/p/7094404.html),如有轉載請標明出處,不甚感激!!!
