当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Julia IOBuffer用法及代码示例


用法一

IOBuffer([data::AbstractVector{UInt8}]; keywords...) -> IOBuffer

创建一个内存 I/O 流,它可以选择性地对预先存在的数组进行操作。

它可能需要可选的关键字参数:

  • read , write , append :限制对缓冲区的操作;有关详细信息,请参阅open
  • truncate :将缓冲区大小截断为零长度。
  • maxsize :指定缓冲区不能增长的大小。
  • sizehint :建议缓冲区的容量( data 必须实现 sizehint!(data, size) )。

如果没有给出data,则默认情况下缓冲区是可读可写的。

例子

julia> io = IOBuffer();

julia> write(io, "JuliaLang is a GitHub organization.", " It has many members.")
56

julia> String(take!(io))
"JuliaLang is a GitHub organization. It has many members."

julia> io = IOBuffer(b"JuliaLang is a GitHub organization.")
IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=35, maxsize=Inf, ptr=1, mark=-1)

julia> read(io, String)
"JuliaLang is a GitHub organization."

julia> write(io, "This isn't writable.")
ERROR: ArgumentError: ensureroom failed, IOBuffer is not writeable

julia> io = IOBuffer(UInt8[], read=true, write=true, maxsize=34)
IOBuffer(data=UInt8[...], readable=true, writable=true, seekable=true, append=false, size=0, maxsize=34, ptr=1, mark=-1)

julia> write(io, "JuliaLang is a GitHub organization.")
34

julia> String(take!(io))
"JuliaLang is a GitHub organization"

julia> length(read(IOBuffer(b"data", read=true, truncate=false)))
4

julia> length(read(IOBuffer(b"data", read=true, truncate=true)))
0

用法二

IOBuffer(string::String)

在给定字符串基础的数据上创建只读IOBuffer

例子

julia> io = IOBuffer("Haho");

julia> String(take!(io))
"Haho"

julia> String(take!(io))
"Haho"

相关用法


注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.IOBuffer — Type。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。