龙空技术网

「9.键盘鼠标和文件编程」4.文本文件读写编程

青少年编程ABC 451

前言:

此时兄弟们对“java读写文本文件的基本步骤有哪些内容和方法”都比较关心,姐妹们都想要分析一些“java读写文本文件的基本步骤有哪些内容和方法”的相关资讯。那么小编同时在网上汇集了一些关于“java读写文本文件的基本步骤有哪些内容和方法””的相关知识,希望兄弟们能喜欢,兄弟们快快来了解一下吧!

4.文本文件读写编程

文本文件以行为单位进行读写操作,只能顺序读写,读写不能同时进行。

4.1.以追加方式打开文本文件

通过调用 Append 过程可以打开一个已经存在的文本文件并可在文件末尾添加文本。格式:

procedure Append(var F: TextFile);

其中:F 为文本文件变量,且必须使用 AssignFile 与文件建立关联。

如果文件不存在则产生错误;如果文件已经打开则先关闭然后再打开。

打开文件后,当前文件的位置在文件的末尾。如果 F 为空,则与标准输出文件建立关联。

4.2文本文件的读取

当文本文件通过 Reset 过程打开以读方式打开后,就可以读取文件内容。读取文本文件可以使用 Read 、Readln 过程来完成。

1.Read

格式:

procedure Read([var F: TextFile;] v1 [, v2, v3, ..., vn]);

该过程可以从文本文件中读取字符串、字符、数值等。其中:

F - 文件文件变量;v1,v2,... - 用于存储读取的数据,这些变量必须为相同的数据类型,数据类型可以为字符串类型、字符型、整型或实型等。

当数据类型为字符串或字符型时,Read 过程按照定义的长度读取字符。

当数据类型为整型或实型时,Read 过程以空格为分隔符,如果数值中出现逗号、分号或其他字符时产生异常。

2.Readln

格式:

procedure Readln([var F: TextFile;] v1 [, v2, v3, ..., vn]);

该过程可以从文本文件中读取字符串、字符、数值等,直到一行结束。

4.3文本文件的写入

当使用 Rewrite 或 Append 过程打开一个文本文件后,就可以使用 Write 或 Writeln 进行数据写入。

1.Write

格式:

procedure Write([var F: TextFile;] p1 [, p2, p3, ..., pn])

该过程向文件中写入数据。

其中:

F - 文本文件变量;

p1,p2,... - 存放写入的数据,可以是字符串型、字符型、整型或实型。

2.Writeln

格式:

procedure Writeln([var F: TextFile;] p1 [, p2, p3, ..., pn])

该过程向文件中写入一行数据,并在末尾处自动输入回车换行符。

4.4文本文件的基本操作与打印机建立关联

procedure AssignPrn(var F: TextFile);
检查文件是否在行尾
function Eoln(var F: TextFile): Boolean;
确保文件写入
procedure Flush(var F: TextFile);

对于以输入(Rewrite 或 Append)方式打开的文件缓冲区,以确保所有写入文件的内容都被写入到外部文件。

返回文件尾部的状态

function SeekEof(var F: TextFile): Boolean;
返回文件行尾状态
function SeekEoln(var F: TextFile): Boolean;
设置文件缓冲区
procedure SetTextBuf(var F: TextFile, var Buf; Size: Integer);
4.5文本文件编程示例

示例:编写一个简单的文件编辑器,界面如下图:

代码如下:

unit Unit1;interfaceuses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.ExtDlgs;type  TForm1 = class(TForm)    Panel1: TPanel;    Memo1: TMemo;    Button1: TButton;    Button2: TButton;    Button3: TButton;    Button4: TButton;    Button5: TButton;    SaveTextFileDialog1: TSaveTextFileDialog;    OpenTextFileDialog1: TOpenTextFileDialog;    procedure Memo1Change(Sender: TObject);    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Button4Click(Sender: TObject);    procedure Button5Click(Sender: TObject);  private    { Private declarations }    procedure CheckSaveFile;    procedure SaveFileWithDialog;    procedure SaveFile;  public    { Public declarations }  end;var  Form1: TForm1;  F: TextFile;  FileName: String;  SaveState: Boolean;implementation{$R *.dfm}procedure TForm1.CheckSaveFile;var  ret: Word;begin  if (not SaveState) and (Length(Memo1.Text) > 0) then  begin    if FileName <> '' then      SaveFile    else    begin      ret := MessageDlg('保存文件吗?', mtConfirmation, [mbOk, mbCancel], 0);      if ret = mrOk then      begin        if FileName = '' then        begin          SaveFileWithDialog;        end;      end;    end;  end;end;procedure TForm1.SaveFileWithDialog;begin  if SaveTextFileDialog1.Execute then  begin    FileName := SaveTextFileDialog1.FileName;    SaveFile;    SaveState := true;  end;end;procedure TForm1.SaveFile;var  i: Integer;begin  AssignFile(F, FileName);  Rewrite(F);  for i := 0 to Memo1.Lines.Count do    Writeln(F, Utf8encode(Memo1.Lines.Strings[i]));  CloseFile(F);end;procedure TForm1.Memo1Change(Sender: TObject);begin  // Memo 内容发生变化时,将文件的保存状态设置为 fasle  SaveState := false;end;procedure TForm1.Button1Click(Sender: TObject);var  ret: Word;begin  // 新建按钮  CheckSaveFile;  FileName := '';  SaveState := false;  Memo1.Text := '';end;procedure TForm1.Button2Click(Sender: TObject);var  line: String;begin  // 打开按钮  CheckSaveFile;  if OpenTextFileDialog1.Execute then  begin    FileName := OpenTextFileDialog1.FileName;    AssignFile(F, FileName);    Reset(F);    Memo1.Text := '';    while not Eof(F) do    begin      Readln(F, line);      Memo1.Lines.Add(line);    end;    CloseFile(F);    SaveState := true;  end;end;procedure TForm1.Button3Click(Sender: TObject);begin  // 保存按钮  if FileName = '' then    SaveFileWithDialog  else    SaveFile;end;procedure TForm1.Button4Click(Sender: TObject);begin  // 另存为按钮  SaveFileWithDialog;end;procedure TForm1.Button5Click(Sender: TObject);begin  // 退出按钮  CheckSaveFile;  Close;end;end.

标签: #java读写文本文件的基本步骤有哪些内容和方法