답변:
다음을 찾고 있습니까?
File.open(yourfile, 'w') { |file| file.write("your text") }
yourfile
쓸 파일 이름이 들어있는 변수입니다.
f.write
예외가 발생 하면 파일 디스크립터가 열린 채로 있기 때문에이 솔루션을 권장하지 않습니다 .
File.write('filename', 'content')
IO.write('filename', 'content')
짧은 버전을 사용할 수 있습니다.
File.write('/path/to/file', 'Some glorious content')
쓴 길이를 반환합니다. 자세한 내용과 옵션 은 :: write 를 참조하십시오.
파일이 이미 존재하는 경우 파일에 추가하려면 다음을 사용하십시오.
File.write('/path/to/file', 'Some glorious content', mode: 'a')
대부분의 경우이 방법이 선호됩니다.
File.open(yourfile, 'w') { |file| file.write("your text") }
블록이로 전달되면 블록이 File.open
종료 될 때 File 객체가 자동으로 닫힙니다.
에 블록을 전달하지 않으면 File.open
파일이 올바르게 닫히고 내용이 파일에 쓰여 졌는지 확인해야합니다.
begin
file = File.open("/tmp/some_file", "w")
file.write("your text")
rescue IOError => e
#some error occur, dir not writable etc.
ensure
file.close unless file.nil?
end
설명서 에서 찾을 수 있습니다 .
static VALUE rb_io_s_open(int argc, VALUE *argv, VALUE klass)
{
VALUE io = rb_class_new_instance(argc, argv, klass);
if (rb_block_given_p()) {
return rb_ensure(rb_yield, io, io_close, io);
}
return io;
}
File.open
blog.rubybestpractices.com/posts/rklemme/ 에 대한 자세한 정보 입니다. 공식 문서에도 언급되어 있습니다.
File.open("out.txt", '<OPTION>') {|f| f.write("write your stuff here") }
옵션 <OPTION>
은 다음과 같습니다.
r
-읽기 전용 파일이 존재해야합니다.
w
-쓸 빈 파일을 만듭니다.
a
-파일에 추가 파일이 없으면 생성됩니다.
r+
-읽기와 쓰기 모두를 위해 파일을 엽니 다. 파일이 존재해야합니다.
w+
-읽고 쓰기위한 빈 파일을 만듭니다.
a+
-읽고 추가 할 파일을 엽니 다. 파일이 없으면 작성됩니다.
귀하의 경우에 w
바람직합니다.
모범을 통해 배우는 우리에게는 ...
다음과 같이 파일에 텍스트를 작성하십시오.
IO.write('/tmp/msg.txt', 'hi')
보너스 정보 ...
이렇게 다시 읽어
IO.read('/tmp/msg.txt')
자주, 나는 클립 보드에 파일을 읽고 싶어 ***
Clipboard.copy IO.read('/tmp/msg.txt')
그리고 다른 경우에는 클립 보드에있는 내용을 파일에 쓰고 싶습니다 ***
IO.write('/tmp/msg.txt', Clipboard.paste)
*** 클립 보드 젬이 설치되어 있다고 가정
IO.write
옵션 덮어 쓰기 대신 APPEND의 파일 내용을. IO.write로 추가하는 것은 약간 지루합니다.
Errno::ENOENT: No such file or directory @ rb_sysopen
메시지와 파일이 0 바이트 크기로 생성 된 것을 볼 수 있습니다 .