using System;
using System.IO;
using System.Text;
namespace 文件写入和读取
{
class Program
{
static void Main(string[] args)
{
//文件写入1
string str = "hello world";//新建一个字符串
byte[] bytes = Encoding.UTF8.GetBytes(str);
//用 UTF8 标准,转换字符串里的内容进一个 byte 数组
FileStream fileStream = new FileStream("MyFile.txt", FileMode.Create);
//创建一个 “MyFile.txt” 文档
fileStream.Write(bytes, 0, bytes.Length);
//调用 FileStream 类里 Write方法 写入字符
fileStream.Close();
//手动调用Close方法,释放内存,因为写入的文件会进入非托管堆,不会自动GC
//new FileStream("MyFile.txt", FileMode.Create)的时候,可以有一些其他的功能:
// "../MyFile.txt" 上一层目录
// "save/MyFile.txt" 当前路径下的 save 文件内(如果有该文件夹)
// "D://MyFile.txt"绝对路径,可以指定写在哪个盘里
//文件写入2
//创建文件夹
if (!Directory.Exists("save"))//(先判断当前路径是否有 save 文件夹)
{
DirectoryInfo directory = Directory.CreateDirectory("save");
//创建一个“save”文件夹
}
string str1 = "hello\nworld2";
byte[] bytes1 = Encoding.UTF8.GetBytes(str1);
using (FileStream fileStream1 = new FileStream("save/MyFile2.txt", FileMode.Create))
{
fileStream1.Write(bytes1, 0, bytes1.Length);
}
//文件读取
try
{
using(FileStream reader = new FileStream("save/MyFile2.txt", FileMode.Open))
{
byte[] bytes2 = new byte[reader.Length];
reader.Read(bytes2, 0, bytes2.Length);
string str2 = Encoding.UTF8.GetString(bytes2);
string[] lines = str2.Split("\r\n");
Console.WriteLine("读取的内容是" + str2);
foreach (var item in lines)
{
Console.WriteLine(item);
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
//C#已经封装好的文件写入和读取方法:WriteAllText和ReadAllLines
string str3 = "111 222 333";
File.WriteAllText("MyFile2.txt", str3);
string[] allLines = File.ReadAllLines("MyFile2.txt");
foreach (var item in allLines)
{
Console.WriteLine(item);
}
}
}
}
C#学习笔记-文件写入和读取(实现原理和现有方法)
最新推荐文章于 2024-06-28 10:15:00 发布