Module Iter.IO

Basic IO

Very basic interface to manipulate files as iterator of chunks/lines. The iterators take care of opening and closing files properly; every time one iterates over an iterator, the file is opened/closed again.

Example: copy a file "a" into file "b", removing blank lines:

Iterator.(IO.lines_of "a" |> filter (fun l-> l<> "") |> IO.write_lines "b");;

By chunks of 4096 bytes:

Iterator.IO.(chunks_of ~size:4096 "a" |> write_to "b");;

Read the lines of a file into a list:

Iterator.IO.lines "a" |> Iterator.to_list
val lines_of : ?mode:int -> ?flags:Stdlib.open_flag list -> string -> string t

lines_of filename reads all lines of the given file. It raises the same exception as would opening the file and read from it, except from End_of_file (which is caught). The file is always properly closed. Every time the iterator is iterated on, the file is opened again, so different iterations might return different results

  • parameter mode

    default 0o644

  • parameter flags

    default: [Open_rdonly]

val chunks_of : ?mode:int -> ?flags:Stdlib.open_flag list -> ?size:int -> string -> string t

Read chunks of the given size from the file. The last chunk might be smaller. Behaves like lines_of regarding errors and options. Every time the iterator is iterated on, the file is opened again, so different iterations might return different results

val write_to : ?mode:int -> ?flags:Stdlib.open_flag list -> string -> string t -> unit

write_to filename seq writes all strings from seq into the given file. It takes care of opening and closing the file.

  • parameter mode

    default 0o644

  • parameter flags

    used by open_out_gen. Default: [Open_creat;Open_wronly].

val write_bytes_to : ?mode:int -> ?flags:Stdlib.open_flag list -> string -> Stdlib.Bytes.t t -> unit
  • since 0.5.4
val write_lines : ?mode:int -> ?flags:Stdlib.open_flag list -> string -> string t -> unit

Same as write_to, but intercales '\n' between each string

val write_bytes_lines : ?mode:int -> ?flags:Stdlib.open_flag list -> string -> Stdlib.Bytes.t t -> unit
  • since 0.5.4