本帖最后由 Cool_Breeze 于 2021-3-18 20:39 编辑
[C#] 纯文本查看 复制代码 using System;
using System.Collections.Generic;
using System.IO;
class CreateFile
{
static void Main()
{
string FileName = @"d:\csTest.txt";
// FileMode.Open 打开一个已有的文件。如果文件不存在,则抛出异常。
// 访问模式:读取和写入
// FileShare.None 文件将被保护(不能共享),只能当前程序使用,其他程序打开次文件,提示被另一个程序占用
FileStream f = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
// checked
// {
// for (byte i = 1; i <= 254 ; i++ )
// {
// if (i % 10 == 0)
// {
// f.Write(new byte[]{(byte)'\r',(byte)'\n'}, 0, 2);
// }
// f.WriteByte(i);
// }
// }
// 指定读取内容大小
var Size = 30;
// 储存指定内容
byte[] buffData = new byte[Size];
// 储存剩余未知大小内容
List<byte> buffDataSurplus = new List<byte>();
// 从文件当前位置读取指定大小内容到 buffData
f.Read(buffData, 0, Size);
int temp = default(int);
// 循环读取每个字节类容,直到末尾
while (true)
{
// 接受每一个字节内容
temp = f.ReadByte();
if (temp == -1) break; // 表示到末尾
buffDataSurplus.Add((byte)temp); // 加入列表中
}
// 恢复文件指针,指向 SeekOrigin.Begin(文件首) 0 个字节处
f.Seek(0, SeekOrigin.Begin);
// 向文件写入 buffData 数组里面的值
f.Write(buffData, 0, Size);
// 插入指定内容
for (byte i = 0; i<30; i++)
f.WriteByte(99);
// 将剩余字符再写会文件
foreach (var b in buffDataSurplus)
f.WriteByte(b);
// Console.ReadLine();
}
}
[C#] 纯文本查看 复制代码 using System;
using System.IO;
using System.Collections.Generic;
class Test
{
static void Main()
{
string file = @"D:\GIN\c#\Exercise\Regex.txt"; // 文件绝对路径
FileStream f = new FileStream(file, FileMode.Open, FileAccess.ReadWrite); // 打开文件
StreamWriter fw = new StreamWriter(f); // 写入文本 将文件对象转换一下,方便后面操作
StreamReader fr = new StreamReader(f); // 读取文本
string OldStr = "10天,";
string NewStr = OldStr + "这是替换后的字符串,";
string ttent;
List<string> array = new List<string>();
int flag;
while (true)
{
ttent = fr.ReadLine();
if (ttent == null) break; // 表示读取到末尾完成
flag = ttent.IndexOf(OldStr); // 匹配字符串
if (flag != -1)
{
ttent = ttent.Replace(OldStr, NewStr); // 将指定字符串替换为插入字符串
}
array.Add(ttent); // 将文本内容存入容器
}
f.Seek(0, 0); // 将文件指针指向开始,覆盖写入文件
foreach (var n in array) // 从容器里面取出文本内容
{
fw.WriteLine(n); // 写入一行内容
}
fw.Close();
fr.Close();
f.Close(); // 最后关闭文件流
}
} |