Ruby双向字符串缓冲区
ruby是否有本机双向字符串缓冲区类?我希望能够做到这样:Ruby双向字符串缓冲区,ruby,io,Ruby,Io,ruby是否有本机双向字符串缓冲区类?我希望能够做到这样: buf = Buffer.new Thread.new do while true # do some work buf << result end buf.close end Thread.new do until buf.eof? result = buf.readline # do some work end end StringIO支持读或写,但不能同时支持
buf = Buffer.new
Thread.new do
while true
# do some work
buf << result
end
buf.close
end
Thread.new do
until buf.eof?
result = buf.readline
# do some work
end
end
StringIO支持读或写,但不能同时支持读和写。如果我初始化一个新的文件并写入它,然后尝试从中读取,我将什么也得不到。有没有什么方法可以得到这样一个普通的旧通信流,而不需要使用mkfifo之类的东西
StringIO支持读或写,但不能同时支持读和写
您可以读取刚刚写入的StringIO对象,只需调用对象上的rewind
我想你在照顾我
StringIO支持读或写,但不能同时支持读和写
您可以读取刚刚写入的StringIO对象,只需调用对象上的rewind
我想您正在考虑。可能的重复:来回传递内存对象是一回事,但我需要使用通常的读/写方法在两端公开一个标准的Ruby流接口。在队列周围编写包装器是一种选择,但它看起来像是stdlib中可能存在的东西,可能存在重复:来回传递内存对象是一回事,但我需要使用通常的读/写方法在两端公开一个标准Ruby流接口。在队列周围编写包装器是一种选择,但它看起来像是stdlib中可能有的东西,我将在这里查看IO::pipe。StringIO会在您更新基础字符串时自动倒带,但倒带不是我想要的,因为这样每次写入之后读取都会重新开始,管道似乎正是我需要的!我将检查IO::pipe。StringIO会在您更新基础字符串时自动倒带,但倒带不是我想要的,因为这样每次写入之后读取都会重新开始,管道似乎正是我需要的!