读写文件在实际运用中比较多的,自己总结记下了,方便复用,给大家参考下
第一种方式:
/// <summary>
/// 写文件
/// </summary>
/// <param name="path">保存路径</param>
/// <param name="message">内容</param>
/// <param name="append">是否追加还是覆盖</param>
public static void WriterFile(string path,string message,bool append) {
using (StreamWriter swtrain = new StreamWriter(path, append, Encoding.UTF8))
{
swtrain.WriteLine(message);
}
}
/// <summary>
/// 读取文件
/// </summary>
/// <param name="path"></param>
public static void ReadFile(string path) {
using (StreamReader sr = new StreamReader(path, Encoding.UTF8))
{
string line;
while ((line = sr.ReadLine()) != null)//读取每一行数据
{
Console.WriteLine(line.ToString());
}
}
}
第二种方式:
/// <summary>
/// 写入文件
/// </summary>
/// <param name="path">路径</param>
/// <param name="message">信息</param>
public static void stream2File(string path,string message)
{
byte [] buffer=Encoding.UTF8.GetBytes(message);
bytetTostream(buffer);
FileStream fs = new FileStream(path, FileMode.Create);
BinaryWriter writer = new BinaryWriter(fs);
writer.Write(buffer);
writer.Close();
fs.Close();
}
/// <summary>
/// 读取文件
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public static void file2Stream(string path)
{
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
byte[] buffer=stream2byte(fs);
Stream stream = new MemoryStream(buffer);
stream.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(stream);
string line;
while ((line = sr.ReadLine()) != null)//读取每一行数据
{
Console.WriteLine(line.ToString());
}
}
/// <summary>
/// stream 转为byte[]
/// </summary>
/// <param name="stream"></param>
/// <returns></returns>
public static byte[] stream2byte(Stream stream)
{
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
return buffer;
}
/// <summary>
/// byte[] 转stream
/// </summary>
/// <param name="buffer"></param>
/// <returns></returns>
public static Stream bytetTostream(byte[] buffer)
{
Stream stream = new MemoryStream(buffer);
stream.Seek(0, SeekOrigin.Begin);
//设置stream的position为流的开始
return stream;
}
一看就知道第一种方式比较好,代码量少,简洁。写第二种作为参考,它们都是继承stream,