Preciso ler os dados do banco de dados e salvá-los em um arquivo de texto.
Como posso fazer isso em Ruby? Existe algum sistema de gerenciamento de arquivos no Ruby?
The Ruby classe File irá dar-lhe os prós e contras de ::new
e ::open
, mas o seu pai, a classe IO , entra na profundidade de #read
e #write
.
Você está procurando o seguinte?
fonte
yourfile
é uma variável que contém o nome do arquivo a ser gravado.f.write
surgir uma exceção.File.write('filename', 'content')
IO.write('filename', 'content')
Você pode usar a versão curta:
Retorna o comprimento escrito; veja :: write para mais detalhes e opções.
Para anexar ao arquivo, se ele já existir, use:
fonte
Essa é a abordagem preferida na maioria dos casos:
Quando um bloco é passado para
File.open
, o objeto File será automaticamente fechado quando o bloco terminar.Se você não passar um bloco para
File.open
, deve certificar-se de que o arquivo esteja corretamente fechado e que o conteúdo foi gravado no arquivo.Você pode encontrá-lo na documentação :
fonte
File.open
blog.rubybestpractices.com/posts/rklemme/… também são mencionadas na documentação oficialA resposta de Zambri encontrada aqui é a melhor.
onde suas opções
<OPTION>
são:r
- Somente leitura. O arquivo deve existir.w
- Crie um arquivo vazio para escrever.a
- Anexar a um arquivo. O arquivo é criado se ele não existir.r+
- Abra um arquivo para atualizar a leitura e a gravação. O arquivo deve existir.w+
- Crie um arquivo vazio para leitura e gravação.a+
- Abra um arquivo para ler e anexar. O arquivo é criado se não existir.No seu caso,
w
é preferível.fonte
Para aqueles de nós que aprendem pelo exemplo ...
Escreva texto em um arquivo como este:
INFORMAÇÕES BÔNUS ...
Leia de volta assim
Freqüentemente, quero ler um arquivo na minha área de transferência ***
E outras vezes, quero gravar o que está na minha área de transferência em um arquivo ***
*** Supõe que você tenha a jóia da área de transferência instalada
Veja: https://rubygems.org/gems/clipboard
fonte
IO.write
opção substituir o conteúdo do arquivo em vez de acrescentar. Anexar com IO.write é um pouco entediante.Errno::ENOENT: No such file or directory @ rb_sysopen
mensagem e o arquivo criado com um tamanho de 0 bytes.Para destruir o conteúdo anterior do arquivo, escreva uma nova string no arquivo:
Para acrescentar a um arquivo sem substituir o conteúdo antigo:
fonte