// StreamRead,StreamWrite,File只能操作文本文件 //FileStream可以操作所有格式 包括文本,文件,图片,视频
//文件所在全路径
string sourceFile = System.IO.Path.Combine(AppContext.ExecPath, "Platforms", "Ali", "Config", "PicNameFormat.inf");
//SreamRead读取文件
using (StreamReader reader = new StreamReader(sourceFile))
{
//reader.ReadLine();读取第一行
string data = reader.ReadToEnd();//读取所有
}
//StreamWrite写入文件
using (StreamWriter writer = new StreamWriter(sourceFile))
{
//writer.Write("写入的内容");
//也可以如下面一行一行写入
writer.WriteLine("0");
writer.WriteLine("1");
writer.WriteLine(picName);
writer.WriteLine(txtCount.Text);
}
//File即可以读取文本 也可以写入文本
//读取
string data = File.ReadAllText(sourceFile);
string[] datas = File.ReadAllLines(sourceFile);
//写入
string[] ss = new string[]{"sfds","fsfs","sfsfds"};
File.WriteAllLines(sourceFile, ss);
File.WriteAllText(sourceFile, "sfsfsdf");
//FileStream可以操作所有格式 包括文本,文件,图片,视频
//FileStream读取
string ss = null;
byte[] buffer = new byte[1024 * 1024 * 1];
using (FileStream sr = new FileStream(sourceFile,FileMode.OpenOrCreate,FileAccess.Read))
{
int sss = sr.Read(buffer,0,buffer.Length);
ss = Encoding.Default.GetString(buffer, 0, sss);
}
//FileStream写入
using (FileStream fsWrite = new FileStream(sourceFile,FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = Encoding.Default.GetBytes(txtAccountKey.Text);
fsWrite.Write(buffer, 0, buffer.Length);
}
Stream 和 文件之间的转换
/* - - - - - - - - - - - - - - - - - - - - - - - -
* Stream 和 文件之间的转换
* - - - - - - - - - - - - - - - - - - - - - - - */
///
/// 将 Stream 写入文件
///
public void StreamToFile(Stream stream,string fileName)
{
// 把 Stream 转换成 byte[]
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
// 设置当前流的位置为流的开始
stream.Seek(0, SeekOrigin.Begin);
// 把 byte[] 写入文件
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();
fs.Close();
}
///
/// 从文件读取 Stream
///
public Stream FileToStream(string fileName)
{
// 打开文件
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
// 读取文件的 byte[]
byte[] bytes = new byte[fileStream.Length];
fileStream.Read(bytes, 0, bytes.Length);
fileStream.Close();
// 把 byte[] 转换成 Stream
Stream stream = new MemoryStream(bytes);
return stream;
}
FileStream文件流及使用文件流来实现多媒体文件的复制示例
static void Main(string[] args)
{
//思路:就是先将要复制的多媒体文件读取出来,然后再写入到你指定的位置
string source = @"C:\Users\SpringRain\Desktop\1、复习.wmv";
string target = @"C:\Users\SpringRain\Desktop\new.wmv";
CopyFile(source, target);
Console.WriteLine("复制成功");
Console.ReadKey();
}
public static void CopyFile(string soucre, string target)
{
//1、我们创建一个负责读取的流
using (FileStream fsRead = new FileStream(soucre, FileMode.Open, FileAccess.Read))
{
//2、创建一个负责写入的流
using (FileStream fsWrite = new FileStream(target, FileMode.OpenOrCreate, FileAccess.Write))
{
byte[] buffer = new byte[1024 * 1024 * 5];
//因为文件可能会比较大,所以我们在读取的时候 应该通过一个循环去读取
while (true)
{
//返回本次读取实际读取到的字节数
int r = fsRead.Read(buffer, 0, buffer.Length);
//如果返回一个0,也就意味什么都没有读取到,读取完了
if (r == 0)
{
break;
}
fsWrite.Write(buffer, 0, r);
}
}
}
}