Warning: The API of this module is subject to change in future releases.
Especially the type for representing paths may change from FilePath to
something else.
Read and write streams and arrays to and from files specified by their paths
in the file system. Unlike the handle based APIs which can have a read/write
session consisting of multiple reads and writes to the handle, these APIs
are one shot read or write APIs. These APIs open the file handle, perform
the requested operation and close the handle. These are safer compared to
the handle based APIs as there is no possibility of a file descriptor
leakage.
Example1 expression
>>> import qualified Streamly.FileSystem.File as File
Stream data to or from a file or device sequentially. When reading,
the stream is lazy and generated on-demand as the consumer consumes it.
Read IO requests to the IO device are performed in chunks limited to a
maximum size of 32KiB, this is referred to as defaultChunkSize in the
documentation. One IO request may or may not read the full
chunk. If the whole stream is not consumed, it is possible that we may
read slightly more from the IO device than what the consumer needed.
Unless specified otherwise in the API, writes are collected into chunks
of defaultChunkSize before they are written to the IO device.
withFile name mode act opens a file using openFile and passes
the resulting handle to the computation act. The handle will be
closed on exit from withFile, whether by normal termination or by
raising an exception. If closing the handle raises an exception, then
this exception will be raised by withFile rather than any exception
raised by act.
Generate a stream of bytes from a file specified by path. The stream ends
when EOF is encountered. File is locked using multiple reader and single
writer locking mode.
readChunksWith size file reads a stream of arrays from file file.
The maximum size of a single array is specified by size. The actual size
read may be less than or equal to size.
readChunks file reads a stream of arrays from file file.
The maximum size of a single array is limited to defaultChunkSize. The
actual size read may be less than defaultChunkSize.
Write a byte stream to a file. Accumulates the input in chunks of up to
Streamly.Internal.Data.Array.Type.defaultChunkSize before writing to
the IO device.
writeWith chunkSize handle writes the input stream to handle.
Bytes in the input stream are collected into a buffer until we have a chunk
of size chunkSize and then written to the IO device.