Operações de I / O de arquivo
Precisamos de arquivos para armazenar a saída de um programa quando o programa termina. Usando arquivos, podemos acessar informações relacionadas usando vários comandos em diferentes idiomas.
Aqui está uma lista de algumas operações que podem ser realizadas em um arquivo -
- Criação de um novo arquivo
- Abrindo um arquivo existente
- Lendo o conteúdo do arquivo
- Pesquisando dados em um arquivo
- Escrevendo em um novo arquivo
- Atualizar o conteúdo para um arquivo existente
- Excluindo um arquivo
- Fechando um arquivo
Escrevendo em um arquivo
Para gravar o conteúdo em um arquivo, primeiro precisamos abrir o arquivo necessário. Se o arquivo especificado não existir, um novo arquivo será criado.
Vamos ver como escrever conteúdo em um arquivo usando C ++.
Exemplo
#include <iostream>
#include <fstream>
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;
}
Note -
fstream é a classe de fluxo usada para controlar as operações de leitura / gravação de arquivos.
ofstream é a classe de fluxo usada para escrever o conteúdo no arquivo.
Vamos ver como escrever conteúdo em um arquivo usando Erlang, que é uma linguagem de programação funcional.
-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").
Note -
Para abrir um arquivo, temos que usar, open(filename,mode).
Sintaxe para gravar conteúdo no arquivo: write(filemode,file_content).
Output - Quando executamos este código, “Gravando o conteúdo no arquivo” será gravado no arquivo Tempfile.txt. Se o arquivo tiver algum conteúdo existente, ele será sobrescrito.
Lendo de um arquivo
Para ler um arquivo, primeiro temos que abrir o arquivo especificado em reading mode. Se o arquivo não existir, seu respectivo método retornará NULL.
O programa a seguir mostra como ler o conteúdo de um arquivo em C++ -
#include <iostream>
#include <fstream>
#include <string>
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;
}
Ele produzirá a seguinte saída -
Writing contents to file
Note- Neste programa, abrimos um arquivo texto em modo de leitura usando “ios :: in” e depois imprimimos seu conteúdo na tela. Nós usamoswhile loop para ler o conteúdo do arquivo linha por linha usando o método “getline”.
O programa a seguir mostra como realizar a mesma operação usando Erlang. Aqui, vamos usar oread_file(filename) método para ler todo o conteúdo do arquivo especificado.
-module(helloworld).
-export([start/0]).
start() ->
rdfile = file:read_file("Tempfile.txt"),
io:fwrite("~p~n",[rdfile]).
Ele produzirá a seguinte saída -
ok, Writing contents to file
Excluir um arquivo existente
Podemos excluir um arquivo existente usando operações de arquivo. O programa a seguir mostra como excluir um arquivo existenteusing C++ -
#include <stdio.h>
int main () {
if(remove( "Tempfile.txt" ) != 0 )
perror( "File doesn’t exist, can’t delete" );
else
puts( "file deleted successfully " );
return 0;
}
Ele produzirá a seguinte saída -
file deleted successfully
O programa a seguir mostra como você pode realizar a mesma operação em Erlang. Aqui, vamos usar o métododelete(filename) para excluir um arquivo existente.
-module(helloworld).
-export([start/0]).
start() ->
file:delete("Tempfile.txt").
Output - Se o arquivo “Tempfile.txt” existir, ele será excluído.
Determinando o tamanho de um arquivo
O programa a seguir mostra como você pode determinar o tamanho de um arquivo usando C ++. Aqui, a funçãofseek define o indicador de posição associado ao fluxo para uma nova posição, enquanto ftell retorna a posição atual no fluxo.
#include <stdio.h>
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;
}
Output - Se o arquivo “Tempfile.txt” existe, então mostrará seu tamanho em bytes.
O programa a seguir mostra como você pode realizar a mesma operação em Erlang. Aqui, vamos usar o métodofile_size(filename) para determinar o tamanho do arquivo.
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w~n",[filelib:file_size("Tempfile.txt")]).
Output- Se o arquivo “Tempfile.txt” existe, então mostrará seu tamanho em bytes. Caso contrário, exibirá “0”.