Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 替换文本文件c中的文本#_C#_.net - Fatal编程技术网

C# 替换文本文件c中的文本#

C# 替换文本文件c中的文本#,c#,.net,C#,.net,替换文本文件中的文本的最佳方法是什么 我不想给文件起一个新名字 我不希望文本变成一个长字符串,这是我使用File.ReadAllText时发生的情况,因为这是存储为字符串的,我会返回等 另外,我想我会在使用StreamReader/StreamWriter时遇到问题,因为您不能读写同一个文件 谢谢您可以通过为阅读和写作打开的流来完成此操作: FileStream fileStream = new FileStream(@"c:\myFile.txt", FileMode.OpenOrCreate

替换文本文件中的文本的最佳方法是什么

  • 我不想给文件起一个新名字
  • 我不希望文本变成一个长字符串,这是我使用File.ReadAllText时发生的情况,因为这是存储为字符串的,我会返回等
  • 另外,我想我会在使用StreamReader/StreamWriter时遇到问题,因为您不能读写同一个文件


    谢谢

    您可以通过为阅读写作打开的流来完成此操作:

    FileStream fileStream = new FileStream(@"c:\myFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
    var streamWriter = new StreamWriter(fileStream);
    var streamReader = new StreamReader(fileStream);
    
    ...
    
    fileStream .Close();
    
    但最简单的方法仍然是读取所有文件,编辑文本并将其写回文件:

    var text = File.ReadAllText(@"c:\myFile.txt");
    
    ...
    
    File.WriteAllText(@"c:\myFile.tx", text);
    

    根据文件格式,您还可以逐行读取文件(使用file.ReadLines)并对每行执行文本替换

    对于基于流的变体,您也可以参考此答案,如果您的文件很大,这是首选方法


    “…我也会返回…”。嗯。。。不,你没有。你说得对,这是我从其他地方得到的源代码导出,其他东西在源代码处损坏了它,并且没有回车!谢谢