Programing

루비로 파일에 쓰는 법?

lottogame 2020. 2. 9. 20:27
반응형

루비로 파일에 쓰는 법?


데이터베이스에서 데이터를 읽은 다음 텍스트 파일로 저장해야합니다.

루비에서 어떻게 할 수 있습니까? Ruby에 파일 관리 시스템이 있습니까?


루비의 파일 클래스는 당신에게 기능과의 아웃 줄 것이다 ::new::open하지만 부모의 IO 클래스 의 깊이에, 도착을 #read하고 #write.


다음을 찾고 있습니까?

File.open(yourfile, 'w') { |file| file.write("your text") }

짧은 버전을 사용할 수 있습니다.

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;
}

Zambri 의 답변 은 여기 에 있습니다.

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)

*** 클립 보드 젬이 설치되어 있다고 가정

참조 : https://rubygems.org/gems/clipboard


파일의 이전 내용을 삭제하려면 파일에 새 문자열을 작성하십시오.

open('myfile.txt', 'w') { |f| f << "some text or data structures..." } 

이전 내용을 덮어 쓰지 않고 파일에 추가하려면

open('myfile.txt', "a") { |f| f << 'I am appended string' } 

참고 URL : https://stackoverflow.com/questions/2777802/how-to-write-to-file-in-ruby



반응형