📅  最后修改于: 2021-01-07 05:21:04             🧑  作者: Mango
当程序终止时,我们需要文件来存储程序的输出。使用文件,我们可以使用不同语言的各种命令来访问相关信息。
这是可以对文件执行的一些操作的列表-
要将内容写入文件,我们首先需要打开所需的文件。如果指定的文件不存在,则将创建一个新文件。
让我们看看如何使用C++将内容写入文件。
#include
#include
using namespace std;
int main () {
ofstream myfile;
myfile.open ("Tempfile.txt", ios::out);
myfile << "Writing Contents to file.\n";
cout << "Data inserted into file";
myfile.close();
return 0;
}
注意–
fstream是用于控制文件读/写操作的流类。
ofstream是用于将内容写入文件的流类。
让我们看看如何使用Erlang(一种功能性编程语言)将内容写入文件。
-module(helloworld).
-export([start/0]).
start() ->
{ok, File1} = file:open("Tempfile.txt", [write]),
file:write(File1,"Writting contents to file"),
io:fwrite("Data inserted into file\n").
注意–
要打开文件,我们必须使用open(filename,mode) 。
将内容写入文件的语法: write(filemode,file_content) 。
输出-运行此代码时,“将内容写入文件”将被写入文件Tempfile.txt中。如果文件具有任何现有内容,则它将被覆盖。
要读取文件,首先我们必须以读取模式打开指定的文件。如果文件不存在,则其各自的方法将返回NULL。
以下程序显示了如何在C++中读取文件的内容-
#include
#include
#include
using namespace std;
int main () {
string readfile;
ifstream myfile ("Tempfile.txt",ios::in);
if (myfile.is_open()) {
while ( getline (myfile,readfile) ) {
cout << readfile << '\n';
}
myfile.close();
} else
cout << "file doesn't exist";
return 0;
}
它将产生以下输出-
Writing contents to file
注意-在此程序中,我们使用“ ios :: in”以读取模式打开了一个文本文件,然后在屏幕上打印其内容。我们使用while循环通过“ getline”方法逐行读取文件内容。
以下程序显示了如何使用Erlang执行相同的操作。在这里,我们将使用read_file(filename)方法从指定文件中读取所有内容。
-module(helloworld).
-export([start/0]).
start() ->
rdfile = file:read_file("Tempfile.txt"),
io:fwrite("~p~n",[rdfile]).
它将产生以下输出-
ok, Writing contents to file
我们可以使用文件操作删除现有文件。以下程序显示了如何使用C++删除现有文件-
#include
int main () {
if(remove( "Tempfile.txt" ) != 0 )
perror( "File doesn’t exist, can’t delete" );
else
puts( "file deleted successfully " );
return 0;
}
它将产生以下输出-
file deleted successfully
以下程序显示了如何在Erlang中执行相同的操作。在这里,我们将使用delete(filename)方法删除现有文件。
-module(helloworld).
-export([start/0]).
start() ->
file:delete("Tempfile.txt").
输出-如果文件“ Tempfile.txt”存在,则将其删除。
以下程序显示了如何使用C++确定文件的大小。在此,函数fseek将与流关联的位置指示符设置为新位置,而ftell返回流中的当前位置。
#include
int main () {
FILE * checkfile;
long size;
checkfile = fopen ("Tempfile.txt","rb");
if (checkfile == NULL)
perror ("file can’t open");
else {
fseek (checkfile, 0, SEEK_END); // non-portable
size = ftell (checkfile);
fclose (checkfile);
printf ("Size of Tempfile.txt: %ld bytes.\n",size);
}
return 0;
}
输出-如果文件“ Tempfile.txt”存在,则将以字节为单位显示其大小。
以下程序显示了如何在Erlang中执行相同的操作。在这里,我们将使用file_size(filename)方法来确定文件的大小。
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w~n",[filelib:file_size("Tempfile.txt")]).
输出-如果文件“ Tempfile.txt”存在,则将以字节为单位显示其大小。否则,它将显示“ 0”。