一定要注意:
如果读流,写流时没有写 编码方式,则得到的是乱码! ! !
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Text;
public partial class 读写文件 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//1:
//ReadFile();
//2:
//string sf = ReadFile("C:\\ReadAndWrite.txt");
//string strFormate = string.Format(sf, "China", "中国");
//WriteFile(strFormate, "C:\\CopyFromReadAndWrite.txt");
//Response.Write("Success!");
//3:
FileOperator opter = new FileOperator();
ArrayList list= opter.ReadFile();
for (int i = 0; i < list.Count; i++)
{
Response.Write(list.ToString());
}
opter.WriteFile();
}
//读取文件
public string ReadFile(string FilePath)
{
//如果在读文件的时候没有指定格式,则在写文件的时候会产生乱码
StreamReader sr = new StreamReader(FilePath, Encoding.GetEncoding("gb2312"));
string StrRead = sr.ReadToEnd();
sr.Close();
return StrRead;
}
//读文件
public void ReadFile()
{
//所有的文件操作都必须放在try程序块中
try
{
//第二步:建立流
using (FileStream fs = File.Open("C:\\ReadAndWrite.txt", FileMode.OpenOrCreate, FileAccess.Read, FileShare.None))
{
//第三步:声明byte数组
byte[] b = new byte[fs.Length];
//第四步:一次性读取文件,把内容存放在数组b中
fs.Read(b, 0, b.Length);
//第五步:把数组b转换为相应的字符串
string s = UTF8Encoding.Default.GetString(b);
Response.Write(s);
//最后,关闭流,释放资源
fs.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
//写入文件
public void WriteFile(string Content, string FileSavePath)
{
if (System.IO.File.Exists(FileSavePath))
{
System.IO.File.Delete(FileSavePath);
}
System.IO.FileStream fs = System.IO.File.Create(FileSavePath);
System.IO.StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("gb2312"));
Byte[] bContent = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(Content);
fs.Write(bContent, 0, bContent.Length);
fs.Close();
fs = null;
}
/// <summary>
/// 文件操作类
/// </summary>
public class FileOperator
{
//写文件:
public void WriteFile()
{
FileStream fs = new FileStream("C:\\ReadAndWrite.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs,Encoding.Default);
//开始写入
sw.Write("重新写入文件的内容!");
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
//读文件:
public ArrayList ReadFile()
{
//读文件如果不指定文件类型,则会出现乱码.
StreamReader objReader = new StreamReader("C:\\ReadAndWrite.txt",Encoding.Default);
string sLine = "";
ArrayList LineList = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null && !sLine.Equals(""))
{
LineList.Add(sLine);
}
}
objReader.Close();
return LineList;
}
//复制一首歌:
public void CopySong()
{
//创建两个文件流 一个是源文件相关,另一个是要写入的文件
FileStream fs = new FileStream(@"D:\KuGoo\爱得太多.wma", FileMode.Open);
FileStream fs2 = new FileStream(@"D:\love.wma", FileMode.Create);
//创建一个字节数组,作为两者之间的媒介
//好比两个人拿苹果,这个字节数组就好比一个篮子,一个人作死的把苹果送到篮子里面,
//而我就可以作死得拿苹果,通过这个媒介我们互不干扰,
//不需要互相等待【她往篮子里面放了苹果我才可以去拿】,提高了效率
byte[] data = new byte[1024];
//创建两个缓冲流,与两个文件流相关联
BufferedStream bs = new BufferedStream(fs);
BufferedStream bs2 = new BufferedStream(fs2);
//fs作死的读,fs2作死的写,直到fs没有字节可读fs2就不写了
//好比,一个人作死的往篮子里面丢苹果,另一个人作死得往篮子里面拿苹果,直到篮子里面没有苹果拿了为止
//即-->那个人没有苹果往篮子里面放了
while (fs.Read(data, 0, data.Length) > 0)
{
fs2.Write(data, 0, data.Length);
fs2.Flush();
}
//关闭流,好比两个人累了,都要休息 呵呵o(∩_∩)o...
fs.Close();
fs2.Close();
}
}
}
如果读流,写流时没有写 编码方式,则得到的是乱码! ! !
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Text;
public partial class 读写文件 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//1:
//ReadFile();
//2:
//string sf = ReadFile("C:\\ReadAndWrite.txt");
//string strFormate = string.Format(sf, "China", "中国");
//WriteFile(strFormate, "C:\\CopyFromReadAndWrite.txt");
//Response.Write("Success!");
//3:
FileOperator opter = new FileOperator();
ArrayList list= opter.ReadFile();
for (int i = 0; i < list.Count; i++)
{
Response.Write(list
}
opter.WriteFile();
}
//读取文件
public string ReadFile(string FilePath)
{
//如果在读文件的时候没有指定格式,则在写文件的时候会产生乱码
StreamReader sr = new StreamReader(FilePath, Encoding.GetEncoding("gb2312"));
string StrRead = sr.ReadToEnd();
sr.Close();
return StrRead;
}
//读文件
public void ReadFile()
{
//所有的文件操作都必须放在try程序块中
try
{
//第二步:建立流
using (FileStream fs = File.Open("C:\\ReadAndWrite.txt", FileMode.OpenOrCreate, FileAccess.Read, FileShare.None))
{
//第三步:声明byte数组
byte[] b = new byte[fs.Length];
//第四步:一次性读取文件,把内容存放在数组b中
fs.Read(b, 0, b.Length);
//第五步:把数组b转换为相应的字符串
string s = UTF8Encoding.Default.GetString(b);
Response.Write(s);
//最后,关闭流,释放资源
fs.Close();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
//写入文件
public void WriteFile(string Content, string FileSavePath)
{
if (System.IO.File.Exists(FileSavePath))
{
System.IO.File.Delete(FileSavePath);
}
System.IO.FileStream fs = System.IO.File.Create(FileSavePath);
System.IO.StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding("gb2312"));
Byte[] bContent = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(Content);
fs.Write(bContent, 0, bContent.Length);
fs.Close();
fs = null;
}
/// <summary>
/// 文件操作类
/// </summary>
public class FileOperator
{
//写文件:
public void WriteFile()
{
FileStream fs = new FileStream("C:\\ReadAndWrite.txt", FileMode.Append);
StreamWriter sw = new StreamWriter(fs,Encoding.Default);
//开始写入
sw.Write("重新写入文件的内容!");
//清空缓冲区
sw.Flush();
//关闭流
sw.Close();
fs.Close();
}
//读文件:
public ArrayList ReadFile()
{
//读文件如果不指定文件类型,则会出现乱码.
StreamReader objReader = new StreamReader("C:\\ReadAndWrite.txt",Encoding.Default);
string sLine = "";
ArrayList LineList = new ArrayList();
while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null && !sLine.Equals(""))
{
LineList.Add(sLine);
}
}
objReader.Close();
return LineList;
}
//复制一首歌:
public void CopySong()
{
//创建两个文件流 一个是源文件相关,另一个是要写入的文件
FileStream fs = new FileStream(@"D:\KuGoo\爱得太多.wma", FileMode.Open);
FileStream fs2 = new FileStream(@"D:\love.wma", FileMode.Create);
//创建一个字节数组,作为两者之间的媒介
//好比两个人拿苹果,这个字节数组就好比一个篮子,一个人作死的把苹果送到篮子里面,
//而我就可以作死得拿苹果,通过这个媒介我们互不干扰,
//不需要互相等待【她往篮子里面放了苹果我才可以去拿】,提高了效率
byte[] data = new byte[1024];
//创建两个缓冲流,与两个文件流相关联
BufferedStream bs = new BufferedStream(fs);
BufferedStream bs2 = new BufferedStream(fs2);
//fs作死的读,fs2作死的写,直到fs没有字节可读fs2就不写了
//好比,一个人作死的往篮子里面丢苹果,另一个人作死得往篮子里面拿苹果,直到篮子里面没有苹果拿了为止
//即-->那个人没有苹果往篮子里面放了
while (fs.Read(data, 0, data.Length) > 0)
{
fs2.Write(data, 0, data.Length);
fs2.Flush();
}
//关闭流,好比两个人累了,都要休息 呵呵o(∩_∩)o...
fs.Close();
fs2.Close();
}
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步