C# 学习笔记 向文件中插入指定内容
本帖最后由 Cool_Breeze 于 2021-3-18 20:39 编辑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;
// 储存剩余未知大小内容
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();
}
}
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(); // 最后关闭文件流
}
} 老哥,能否帮我看一下我的帖子,求指导
https://www.52pojie.cn/thread-1384275-1-1.html 感谢分享,C++的代码有吗? ljxpjpjljx 发表于 2021-3-6 14:48
感谢分享,C++的代码有吗?
不好意思。 没有学过C++,但是方法是通用的:
把要出入之前和之后的内容分别保存下来,然后按顺序,之前的内容,你的内容,之后的内容写入文件就行了。可能操作的细节不一样!
到此一游,学习一下。
页:
[1]