FileOpen,FileRead,FileWrite

max*_*fax 5 delphi buffer file

如何正确使用FileRead,FileWrite,缓冲区(或使用TFileStream).

我需要将一个完整的文本文件读取到一个String,然后将一个String写回该文件(用一个新的字符串替换它).

Dav*_*nan 11

TStringList 如果你需要以每行为基础处理文件,那么你想要的是什么.

如果您只想将其视为单个字符串blob,那么就有了TStringStream.

Stream := TStringStream.Create('', TEncoding.UTF8);
Try
  Stream.LoadFromFile('c:\desktop\in.txt');
  ShowMessage(Stream.DataString);

  Stream.Clear;
  Stream.WriteString('Greetings earthlings!');
  Stream.SaveToFile('c:\desktop\out.txt');
Finally
  Stream.Free;
End;
Run Code Online (Sandbox Code Playgroud)


Ste*_*yne 5

将文件读入字符串的最简单,最简单的方法是使用TStringList,如下所示:

sl := TStringList.Create;
try
    sl.LoadFromFile('C:\myfile.txt');

    //String can be read and modified using the Text property:
    oldString := sl.Text;
    sl.Text := 'foo bar';

    //Text can be written back to the file using:
    sl.WriteToFile('C:\myfile.txt');
finally
    sl.Free;
end;
Run Code Online (Sandbox Code Playgroud)

正如你的问题下面的评论中所指出的,这可能最终会改变你的字符串中的换行符 - 所以根据你想要读/做的内容,你需要注意这一点.