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


Julia write用法及代码示例


用法:

write(io::IO, x)
write(filename::AbstractString, x)

将值的规范二进制表示写入给定的 I/O 流或文件。返回写入流的字节数。另请参见 print 以编写文本表示(使用可能取决于 io 的编码)。

写入值的字节顺序取决于主机系统的字节顺序。在写入/读取时(例如使用 htol ltoh )转换为/从固定字节序转换以获得跨平台一致的结果。

您可以使用相同的write 调用写入多个值。即以下是等效的:

write(io, x, y...)
write(io, x) + write(io, y...)

例子

一致的序列化:

julia> fname = tempname(); # random temporary filename

julia> open(fname,"w") do f
           # Make sure we write 64bit integer in little-endian byte order
           write(f,htol(Int64(42)))
       end
8

julia> open(fname,"r") do f
           # Convert back to host byte order and host integer type
           Int(ltoh(read(f,Int64)))
       end
42

合并写调用:

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> write(io, "Sometimes those members") + write(io, " write documentation.")
44

julia> String(take!(io))
"Sometimes those members write documentation."

当包装在 Ref 中时,可以编写没有 write 方法的用户定义的 plain-data 类型:

julia> struct MyStruct; x::Float64; end

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

julia> write(io, Ref(MyStruct(42.0)))
8

julia> seekstart(io); read!(io, Ref(MyStruct(NaN)))
Base.RefValue{MyStruct}(MyStruct(42.0))

相关用法


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