怎么将一个文件流转换成字符串

如题所述

function StringToFile(mString: string; mFileName: TFileName): Boolean;
{ 返回字符串保存到文件是否成功 }
var
vFileChar: file of Char;
I: Integer;
begin
{$I-}
AssignFile(vFileChar, mFileName);
Rewrite(vFileChar);
for I := 1 to Length(mString) do Write(vFileChar, mString[I]);
CloseFile(vFileChar);
{$I+}
Result := (IOResult = 0) and (mFileName <> '');
end; { StringToFile }

function FileToString(mFileName: TFileName): string;
{ 返回从文件载入字符串 }
var
vFileChar: file of Char;
vChar: Char;
begin
Result := '';
{$I-}
AssignFile(vFileChar, mFileName);
Reset(vFileChar);

while not Eof(vFileChar) do begin
Read(vFileChar, vChar);
Result := Result + vChar;
end;
CloseFile(vFileChar);
{$I+}
end; { FileToString }

function StreamToString(mStream: TStream): string;
{ 将内存流转换成字符串 }
var
I: Integer;
begin
Result := '';
if not Assigned(mStream) then Exit;
SetLength(Result, mStream.Size);
for I := 0 to Pred(mStream.Size) do try
mStream.Position := I;
mStream.Read(Result[Succ(I)], 1);
except
Result := '';
end;
end; { StreamToString }

function StringToStream(mString: string; mStream: TStream): Boolean;
{ 返回将字符串保存到内存流是否成功 }
var
I: Integer;
begin
Result := True;
try
mStream.Size := 0;
mStream.Position := 0;
for I := 1 to Length(mString) do mStream.Write(mString[I], 1);
except
Result := False;
end;
end; { StringToStream }
///////End Source

///////Begin Demo
procedure TForm1.Button1Click(Sender: TObject);
var
vMemoryStream: TMemoryStream;
begin
Memo1.Text := FileToString('C:\WINDOWS\Desktop\1.txt');
vMemoryStream := TMemoryStream.Create;
try
Memo1.Lines.SaveToStream(vMemoryStream);
Memo2.Text := StreamToString(vMemoryStream);
finally
vMemoryStream.Free;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
vMemoryStream: TMemoryStream;
begin
StringToFile(Memo2.Text, 'C:\WINDOWS\Desktop\1.txt');
vMemoryStream := TMemoryStream.Create;
try
StringToStream(Memo2.Text, vMemoryStream);
vMemoryStream.Position := 0;
Memo1.Lines.LoadFromStream(vMemoryStream);
finally
vMemoryStream.Free;
end;
end;
///////End Demo
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-02-11

通过格式操作使任意类型的数据转换成一个字符串

怎么样将一个文件流转换为二进制的字符串
文本流是解释性的,最长可达255个字符,其中回车\/换行将被转换为换行符“\\n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"\\r\\n"序列转成"\\n",在写入时把"\\n"转成"\\r\\n" archim 's opinion )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。

怎么样将一个文件流转换为二进制的字符串
你应该使用一种编码方式来转换。参考Base64编码,比较有效率,得到的字符串长度约为二进制数据的1.3倍。上面的人提供的方式转换起来会长得多。

java输出流怎么转换为字符串
首先,最直接的方法是使用InputStream.read(byte[] b, int off, int len),这个方法会读取指定数量的字节到指定的byte数组中。例如:byte[] bytes = new byte[1024];int bytesRead = in.read(bytes);if (bytesRead != -1) { \/\/ bytesRead now holds the number of bytes read } 另一种...

怎么将一个文件流转换成字符串
+ file.getFileName());\/\/建立一个上传文件的输出流 System.out.println(filePath + "\/" + file.getFileName());int bytesRead = 0;byte[] buffer = new byte[8192];while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) { bos.write(buffer, 0, bytesRead);\/\/将文件写入...

delphi 怎么将一个流转换成字符串
可以使用 TStringStream 对象来转换。

java中File类型怎么转String类型啊?
首先需要说明的而是File是io流,而你的String是数据类型,你不可能将File转成String;你可以实现的是将File的内容转换为String;你可以参考下我的java代码:import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;public class ReadFile { public static...

python怎么把列表转换成字符串?
具体操作步骤如下:1. 确保你的列表中的所有元素都是字符串类型。因为`join`方法要求列表中的每个元素都是字符串。如果列表中有非字符串类型的元素,你需要先将其转换为字符串。2. 使用字符串对象的`join`方法。你需要创建一个空字符串,然后调用其`join`方法,并将列表作为参数传入。例如,如果你有...

怎么将一个文件流转换成字符串
end; { FileToString } function StreamToString(mStream: TStream): string;{ 将内存流转换成字符串 } var I: Integer;begin Result := '';if not Assigned(mStream) then Exit;SetLength(Result, mStream.Size);for I := 0 to Pred(mStream.Size) do try mStream.Position := I;m...

如何将一个数据区域的数据转换为字符串
指令输入为16进制的,你可以使用中间变量转换一下数据类型即可。在屏上直接建立此字符串的地址,定义字符串数据类型在显示。

C#中怎样把流文件转换为字符串
request.GetResponse();request.Method = "GET";Stream receiveStream = response.GetResponseStream();StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);string SourceCode = readStream.ReadToEnd();response.Close();readStream.Close();SourceCode 就是那个字符串 ...

相似回答