2009-12-28 8 views
1

File.foreach ('input.txt')는 한 번에 한 줄씩 파일을 읽습니다. 그것에 대한 모든 문서를 잘 수 없었다. 누구나 확인할 수 있습니까?많은 수의 파일을 처리하는 rubyj

또한 File.forach와 File.open 사이의 차이점을 테스트하기 위해 거대한 파일을 만들고 싶습니다. 파일이 너무 크면 File.open이 실패하고 File.foreach가 성공해야합니다. 누구든지 거대한 파일을 정말 빨리 만들 수있는 재치 넘치는 트릭을 알고 있습니까?

업데이트 :

추가 읽기에서 파일을 읽는 다른 방법을 찾았습니다. 어느 누구도 동시에 모든 것을 읽으려고하지는 않을 것입니다. 몇 가지 사례를 시도 하고이 게시물을 업데이 트됩니다.

f = File.open('input.txt') 
a = f.readlines 

f = File.open('input.txt') 
a = f.get 

f = File.open('input.txt') 
f.each_line{ |s| puts s} 

답변

1

File.foreach ("파일") 그래서 그래 그것은 당신이 무엇을 믿는가, 파일의 라인에 대한 열거자를 만듭니다.

dd if=/dev/random of=myfile.dat bs=$((1024 * 1024 )) count=1000 
0

open 정말 큰 실패해야한다는 특별한 이유가 없다 :이 큰 파일을 빠르게 사용을 만들려면 (더 큰 무언가를 필요로하는 경우이 1GB의 파일을 만듭니다, 당신은 카운트 매개 변수를 변경할 수 있습니다) 파일. 즉, open은 읽기 (쓰기, 추가)를위한 파일을 열뿐입니다. 파일을 메모리에 즉시 저장하지 않습니다. I/O를위한 루비 문서의 측면에서

, 여기 시작할 것 :

http://ruby-doc.org/core/classes/IO.html

관련 문제