Ruby Language
파일 및 I / O 작업
수색…
매개 변수
깃발 | 의미 |
---|---|
"아르 자형" | 읽기 전용, 파일의 시작 부분에서 시작합니다 (기본 모드). |
"r +" | 읽기 - 쓰기, 파일의 시작 부분에서 시작합니다. |
"w" | 쓰기 전용, 기존 파일을 길이가 0으로 자르거나 쓰기 위해 새 파일을 만듭니다. |
"w +" | 읽기 - 쓰기, 기존 파일을 길이가 0으로 자르거나 읽기 및 쓰기 용으로 새 파일을 만듭니다. |
"에이" | 쓰기 전용, 파일이 있으면 파일의 끝에서 시작하고 그렇지 않으면 쓰기를 위해 새 파일을 만듭니다. |
"a +" | 읽기 - 쓰기, 파일이 있으면 파일 끝에서 시작하고, 그렇지 않으면 읽기 및 쓰기 용으로 새 파일을 만듭니다. |
"비" | 이진 파일 모드. Windows에서 EOL <-> CRLF 변환을 억제합니다. 명시 적으로 지정하지 않는 한 외부 인코딩을 ASCII-8BIT로 설정합니다. 이 플래그는 위의 플래그와 함께 만 표시 될 수 있습니다 (예 : File.new("test.txt", "rb") 는 test.txt 를 read-only 모드로 binary 파일로 엽니 다.) |
"티" | 텍스트 파일 모드. 예를 들어, File.new("test.txt", "wt") 는 test.txt 를 write-only 모드로 text 파일로 엽니 다. File.new("test.txt", "wt") 이 플래그는 위의 플래그와 함께 만 표시 될 수 있습니다. |
문자열을 파일에 쓰는 중
문자열은 File
클래스의 인스턴스를 사용하여 File
쓸 수 있습니다.
file = File.new('tmp.txt', 'w')
file.write("NaNaNaNa\n")
file.write('Batman!\n')
file.close
File
클래스는 또한 open
메소드를 사용하여 new
및 close
연산을 간단하게 제공합니다.
File.open('tmp.txt', 'w') do |f|
f.write("NaNaNaNa\n")
f.write('Batman!\n')
end
간단한 쓰기 작업의 경우 문자열을 File.write
를 사용하여 파일에 직접 쓸 수도 있습니다. 이 옵션은 기본적으로 파일을 덮어 씁니다.
File.write('tmp.txt', "NaNaNaNa\n" * 4 + 'Batman!\n')
File.write
다른 모드를 지정하려면 해시에서 mode
라는 키 값으로 다른 매개 변수로 전달하십시오.
File.write('tmp.txt', "NaNaNaNa\n" * 4 + 'Batman!\n', { mode: 'a'})
파일 열기 및 닫기
수동으로 파일을 열고 닫습니다.
# Using new method
f = File.new("test.txt", "r") # reading
f = File.new("test.txt", "w") # writing
f = File.new("test.txt", "a") # appending
# Using open method
f = open("test.txt", "r")
# Remember to close files
f.close
블록을 사용하여 파일을 자동으로 닫습니다.
f = File.open("test.txt", "r") do |f|
# do something with file f
puts f.read # for example, read it
end
입력의 단일 문자 가져 오기
gets.chomp
와 달리 개행을 기다리지 않습니다.
stdlib의 첫 번째 부분이 포함되어야합니다.
require 'io/console'
그런 다음 도우미 메서드를 작성할 수 있습니다.
def get_char
input = STDIN.getch
control_c_code = "\u0003"
exit(1) if input == control_c_code
input
end
그것의 ' control+c
를 누르면 종료하는 것이 중요합니다.
STDIN에서 읽기
# Get two numbers from STDIN, separated by a newline, and output the result
number1 = gets
number2 = gets
puts number1.to_i + number2.to_i
## run with: $ ruby a_plus_b.rb
## or: $ echo -e "1\n2" | ruby a_plus_b.rb
ARGV로 인수 읽기
number1 = ARGV[0]
number2 = ARGV[1]
puts number1.to_i + number2.to_i
## run with: $ ruby a_plus_b.rb 1 2
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow