E/S do arquivo ruby

E/S do arquivo ruby
Trabalhar com arquivos é praticamente um requisito para qualquer desenvolvedor. Na maioria dos casos, se você não está salvando dados em um banco de dados, provavelmente está salvando -os em um arquivo.

Este guia mostrará como usar os métodos de E/S Ruby para abrir, ler, escrever e criar novos arquivos.

Vamos começar no básico da entrada e saída em Ruby

E/S básico

Os métodos de E/S mais básicos em Ruby são os que usamos para imprimir texto na tela.

Coloca

O método puts é provavelmente o método de E/S mais comum.

Para imprimir algo na tela, simplesmente:

my_var = 100
coloca my_var

O comando puts imprimirá o valor armazenado na variável referenciada e adicionará uma nova linha no final.

Imprimir

O método de impressão é semelhante aos puts, mas não adiciona uma nova linha à direita. Deixa o cursor na mesma linha.

Imprima "Hello World!"

Putc

Outro método de E/S básico comum é o método PUTC. Funciona de maneira semelhante ao método de puts e impressão, mas imprime um caractere de cada vez.

Por exemplo:

my_var = "Hello World!"
putc my_var

O acima deve imprimir o personagem 'h.'

Recebe

O método Get, por outro lado, busca entrada do usuário usando o stream Stdin.

coloca "Entre na sua idade:"
idade = recebe
coloca "você tem #idade anos"

E/S do arquivo

Embora entender como trabalhar com o padrão dentro e fora seja útil, pode ser muito limitante quando você precisar de dados persistentes.

Nesse caso, podemos usar a entrada e saída de arquivo para ler e gravar em arquivos.

Arquivo.Novo()

O primeiro método útil ao trabalhar com arquivos é o novo método. Isso cria um novo objeto de arquivo com o nome do arquivo especificado e o modo.

A sintaxe geral é:

f = arquivo.novo ('nome do arquivo', 'modo')

O nome do arquivo pode ser qualquer nome e extensão.

Ruby suporta vários modos de arquivo. Esses incluem:

  1. r - Modo somente leitura
  2. c - Modo somente de gravação
  3. r+ - Leia o modo de gravação
  4. c+ Leia o modo de gravação
  5. a - Modo de gravação e anexa novos dados se o arquivo existir; Caso contrário, crie arquivo e adicione os dados.
  6. a+ - O mesmo que "A", mas usa o modo de leitura de leitura.

Por exemplo, para criar um novo arquivo que não existe:

f = arquivo.novo novo.txt "," a+")
f.Syswrite ("Eu fui criado recentemente")
f.fechar()

No exemplo acima, criamos um novo objeto de arquivo com o nome novo.txt e o modo de leitura-gravação. Como o arquivo não existe, é criado automaticamente.

Na próxima linha, escrevemos para o arquivo usando o método syswrite e, finalmente, fechamos o arquivo.

$ CAT NOVO.TXT
Eu fui criado recentemente

Arquivo.Abrir()

Você pode usar o método aberto para abrir um arquivo. Depois de abrir um arquivo, você pode ler ou escrever para ele.

Por exemplo:

f = arquivo.aberto ("novo.TXT")
content = f.ler
coloca conteúdo

No exemplo acima, usamos o método aberto para abrir um arquivo existente no diretório de trabalho atual.

Uma vez aberto, podemos ler o conteúdo do arquivo.

Observe que não especificamos o modo ao abrir o arquivo para leitura, porque ele está configurado para ler quando não especificado.

Para gravar em um arquivo, você precisa especificar o modo como gravação ou leitura como mostrado no exemplo abaixo:

f = arquivo.aberto ("novo.txt "," r+")
f.Escreva ("Esta é outra linha")
f.fechar()

No exemplo acima, especificamos o modo como leitura-gravação como estamos escrevendo para o arquivo.

Arquivo.renomear ()

Além de ler e escrever em um arquivo, Ruby permite que você execute outras operações, incluindo renomear o arquivo usando o método de renomeação.

Exemplo:

f = arquivo.renomear ("novo.txt "," renomeado.TXT")

O método acima deve renomear o novo.arquivo txt para renomeado.TXT.

Arquivo.Excluir()

Para excluir um arquivo, você pode usar o método de exclusão e especificar o nome do arquivo como o argumento. Por exemplo:

coloca "#arquivo.delete ("renomeado.txt ") excluído!"

Arquivo.Dirname ()

O método Dirname permite que você obtenha o caminho do arquivo sem incluir o nome do arquivo.

Por exemplo:

f = arquivo.Dirname ("/var/log/lastLog")
coloca f

Isso deve exibir o caminho completo para o diretório onde o arquivo está localizado.

# ruby ​​fileio.rb
/var/log

Arquivo.existe?

Para verificar se existe um arquivo, use o arquivo.existe? método. Ele retorna um verdadeiro booleano se o valor existir e falso se o contrário.

coloca o arquivo.existe?("/etc/passwd")
verdadeiro

E/S do diretório

Se você deseja trabalhar com diretórios em Ruby, pode usar a classe Dir que contém métodos para essas operações.

Eles incluem:

  1. PWD () - Retorna o diretório de trabalho atual
  2. vazio?("/Dirpath") - Verifica se um diretório está vazio
  3. mkdir ("/dirpath") - Cria um diretório com o nome especificado.
  4. excluir ("/dirpath") - Exclui o diretório especificado
  5. chdir ("/dirpath") - Navega para o caminho do diretório especificado
  6. entradas ("/dirpath") - Lista todos os arquivos no diretório.

Conclusão

Este tutorial mostrou como usar várias operações de entrada/saída de rubi. É bom observar que existem outras operações que você pode executar além das discutidas neste tutorial. Considere o arquivo e a documentação da classe Dir para saber mais.