Self-Improvement
기초 4 (파일 입출력) 본문
파일 읽기
File.new메소드, 파일 열고 닫기
r => 읽기 모드
w => 쓰기모드
r+ => 읽기 쓰기 모드
1
2
3
|
file=File.new("testfile","r")
# ... 파일에 대한
file.close
|
cs |
File.open
File.open에 블록을 함께 사용하면 블록 실행이 끝나면 파일도 자동으로 닫아진다.
1
2
3
|
File.open("testfile","r") do |file|
# ... 파일에 대한 처리
end # 자동으로 파일이 닫아짐
|
cs |
gets
gets 메소드를 파일의 내용을 한 줄씩 읽어올 수 있으며 입력값으로 사용될 수 있다.
실행 시 인자로 파일을 준다면 파일의 내용을 읽어온다.
1
2
3
|
while line = gets
puts line
end
|
cs |
파일을 열어서 읽어온다.
1
2
3
4
5
|
File.open("worldlist") do |file|
while line =file.gets
puts line
end
end
|
cs |
each_line
each_line 메소드를 사용하면 특정 문자열을 기준으로 분리해줄 수 있고 default로는 "\n"이다.
1
2
3
|
File.open("worldlist") do |file|
file.each_line {|line| puts "Got #{line.dump}"}
end
|
cs |
1
2
3
|
File.open("worldlist") do |file|
file.each_line("h") {|line| puts "Got #{line.dump}"}
end
|
cs |
IO.foreach
IO.foreach 메소드를 사용하면 파일을 자동으로 닫아주는 블록 기능과 반복자의 개념을 합칠 수 있다.
1
|
IO.foreach("worldlist") {|line| puts line}
|
cs |
문자열, 배열로 읽기
1
2
3
4
5
6
7
8
9
|
# 문자열로 읽기
str=IO.read("worldlist")
str.length # 총 문자열 길이
str[0, 30] # 0~30까지 문자열 출력
# 배열로 읽기
arr = IO.readlines("testfile")
arr.length # 라인 개수
arr[0] # 첫번째 라인 출력
|
cs |
파일 쓰기
w로 파일을 open한 다음에 puts로 입력을 해주면된다.
1
2
3
4
|
File.open("output.txt","w") do |file|
file.puts "hello"
file.puts "1+2=#{1+2}"
end
|
cs |
'프로그래밍 > Ruby' 카테고리의 다른 글
[Ruby require net/http] Basic_auth, Digest_auth, proxy setting (0) | 2020.08.25 |
---|---|
[Ruby require net/http] URI 파싱, GET, POST, header setting (0) | 2020.08.25 |
기초 3 (블록, 변수 대입, 예외처리(rescue), catch/throw) (0) | 2020.08.18 |
기초 2 (클래스, 인스턴스, 접근제어, 변수, 해시(파이썬의 딕셔너리)) (0) | 2020.08.18 |
기초 (인자, 읽기 쓰기, 메소드, 배열, 키와 값, nil, 상수(심볼), IF문, While문) (0) | 2020.08.14 |