I/O 与网络

通用 I/O

  1. Base.stdout
  2. Base.stderr
  3. Base.stdin
  4. Base.open
  5. Base.IOStream
  6. Base.IOBuffer
  7. Base.take!(::Base.GenericIOBuffer)
  8. Base.fdio
  9. Base.flush
  10. Base.close
  11. Base.write
  12. Base.read
  13. Base.read!
  14. Base.readbytes!
  15. Base.unsafe_read
  16. Base.unsafe_write
  17. Base.readeach
  18. Base.peek
  19. Base.position
  20. Base.seek
  21. Base.seekstart
  22. Base.seekend
  23. Base.skip
  24. Base.mark
  25. Base.unmark
  26. Base.reset
  27. Base.ismarked
  28. Base.eof
  29. Base.isreadonly
  30. Base.iswritable
  31. Base.isreadable
  32. Base.isopen
  33. Base.fd
  34. Base.redirect_stdio
  35. Base.redirect_stdout
  36. Base.redirect_stdout(::Function, ::Any)
  37. Base.redirect_stderr
  38. Base.redirect_stderr(::Function, ::Any)
  39. Base.redirect_stdin
  40. Base.redirect_stdin(::Function, ::Any)
  41. Base.readchomp
  42. Base.truncate
  43. Base.skipchars
  44. Base.countlines
  45. Base.PipeBuffer
  46. Base.readavailable
  47. Base.IOContext
  48. Base.IOContext(::IO, ::Pair)
  49. Base.IOContext(::IO, ::IOContext)

文本 I/O

  1. Base.show(::IO, ::Any)
  2. Base.summary
  3. Base.print
  4. Base.println
  5. Base.printstyled
  6. Base.sprint
  7. Base.showerror
  8. Base.dump
  9. Meta.@dump
  10. Base.readline
  11. Base.readuntil
  12. Base.readlines
  13. Base.eachline
  14. Base.displaysize

多媒体 I/O

就像文本输出用 print 实现,用户自定义类型可以通过重载 show 来指定其文本化表示, Julia 提供了一个应用于富多媒体输出的标准化机制 (例如图片、格式化文本、甚至音频和视频),由以下三部分组成:

  • 函数 display(x) 来请求一个 Julia 对象 x 最丰富的多媒体展示,并以纯文本作为后备模式。

  • 重载 show 允许指定用户自定义类型的任意多媒体表现形式(以标准MIME类型为键值)。

  • Multimedia-capable display backends may be registered by subclassing a generic AbstractDisplay type 并通过 pushdisplay 将其压进显示后端的栈中。

基础 Julia 运行环境只提供纯文本显示, 但是更富的显示可以通过加载外部模块或者使用图形化 Julia 环境 (比如基于 IPython 的 IJulia notebook)来实现。

  1. Base.AbstractDisplay
  2. Base.Multimedia.display
  3. Base.Multimedia.redisplay
  4. Base.Multimedia.displayable
  5. Base.show(::IO, ::Any, ::Any)
  6. Base.Multimedia.showable
  7. Base.repr(::MIME, ::Any)
  8. Base.MIME
  9. Base.@MIME_str

如上面提到的,用户可以定义新的显示后端。 例如,可以在窗口显示 PNG 图片的模块可以在 Julia 中注册这个能力, 以便为有 PNG 表示的类型调用 display(x) 时可以在模块窗口中自动显示图片。

In order to define a new display backend, one should first create a subtype D of the abstract class AbstractDisplay. Then, for each MIME type (mime string) that can be displayed on D, one should define a function display(d::D, ::MIME"mime", x) = ... that displays x as that MIME type, usually by calling show(io, mime, x) or repr(io, mime, x). A MethodError should be thrown if x cannot be displayed as that MIME type; this is automatic if one calls show or repr. Finally, one should define a function display(d::D, x) that queries showable(mime, x) for the mime types supported by D and displays the “best” one; a MethodError should be thrown if no supported MIME types are found for x. Similarly, some subtypes may wish to override redisplay(d::D, ...). (Again, one should import Base.display to add new methods to display.) The return values of these functions are up to the implementation (since in some cases it may be useful to return a display “handle” of some type). The display functions for D can then be called directly, but they can also be invoked automatically from display(x) simply by pushing a new display onto the display-backend stack with:

  1. Base.Multimedia.pushdisplay
  2. Base.Multimedia.popdisplay
  3. Base.Multimedia.TextDisplay
  4. Base.Multimedia.istextmime

网络 I/O

  1. Base.bytesavailable
  2. Base.ntoh
  3. Base.hton
  4. Base.ltoh
  5. Base.htol
  6. Base.ENDIAN_BOM