Programming Ruby 2nd 读书笔记4

C10  Basic IO

 1.  输入输出基础

while line = gets
  puts(line)
end

 

如果用ruby copy.rb a.txt,那么a.txt会作为输入文件。

 

2. File的常用方法

File.open("testfile") do |file|
  file.each_byte {|ch| putc ch; print "." }
end
File.open("testfile") do |file|
  file.each_line {|line| puts "Got #{line.dump}" }
end
File.open("testfile") do |file|
  file.each_line("e") {|line| puts "Got #{ line.dump }" }
end
IO.foreach("testfile") {|line| puts line }
# read into string
str = IO.read("testfile")
str.length -> 66
str[0, 30] -> "This is line one\nThis is line "
# read into an array
arr = IO.readlines("testfile")
arr.length -> 4
arr[0] -> "This is line one\n"

 

3. StringIO

require 'stringio'

instr = StringIO.new("I think I could forget everything, \nhowever it is imporssible")
oustr = StringIO.new()
instr.each_line do |line|
  oustr.puts(line.reverse)
end

puts(oustr.string) 

 

C11 Multiple Thread

1.  线程共享变量

count = 0
threads = []
1000.times do |i|
  threads[i] = Thread.new do
    sleep(rand(0.1))
    Thread.current["mycount"] = count
    count += 1
  end
end
threads.each {|t| t.join; print t["mycount"], ", " }
puts "count = #{count}"                            

  一般情况下,你会发现最后输出的count不等于1000。如果你的机器很快,把1000改大一些。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值