core :: FileReader
Stream that can read from a Filecore :: FileReader :: defaultinit
core :: FileReader :: from_fd
Creates a new File stream from a file descriptorcore $ FileReader :: SELF
Type of this instance, automatically specialized in every classcore $ FileReader :: raw_read_byte
Read a byte directly from the underlying stream, withoutcore $ FileReader :: raw_read_bytes
Read at mostmax bytes from the underlying stream into buf,
			core :: Reader :: append_line_to
Read a string until the end of the line and append it tos.
			binary :: BinaryStream :: big_endian
Use the big-endian convention? otherwise use little-endian.binary :: BinaryStream :: big_endian=
Use the big-endian convention? otherwise use little-endian.core :: Object :: class_factory
Implementation used byget_class to create the specific class.
			core :: PollableReader :: defaultinit
binary :: BinaryStream :: defaultinit
core :: FileStream :: defaultinit
core :: FileReader :: defaultinit
core :: Stream :: defaultinit
core :: Reader :: defaultinit
core :: Object :: defaultinit
core :: Reader :: deserialize_msgpack
Deserialize full Nitnullable Object from MessagePack formated data
			core :: FileStream :: file_stat
The status of a file. see POSIX stat(2).core :: FileReader :: from_fd
Creates a new File stream from a file descriptorcore :: Object :: is_same_instance
Return true ifself and other are the same instance (i.e. same identity).
			core :: Object :: is_same_serialized
Isself the same as other in a serialization context?
			core :: Object :: is_same_type
Return true ifself and other have the same dynamic type.
			core :: Stream :: last_error=
Error produced by the file streamcore :: Stream :: lookahead=
Lookahead buffer for codecscore :: Stream :: lookahead_capacity
Capacity of the lookaheadcore :: Stream :: lookahead_capacity=
Capacity of the lookaheadcore :: Stream :: lookahead_length
Current occupation of the lookaheadcore :: Stream :: lookahead_length=
Current occupation of the lookaheadcore :: Object :: output_class_name
Display class name on stdout (debug only).core :: PollableReader :: poll_in
Is there something to read? (without blocking)core :: Reader :: raw_read_byte
Read a byte directly from the underlying stream, withoutcore :: Reader :: raw_read_bytes
Read at mostmax bytes from the underlying stream into buf,
			core :: Reader :: read_block
Read the length as a 64 bits integer, then the content of the blockcore :: Reader :: read_bytes_to_cstring
Reads up tomax bytes from source and stores them in bytes
			core :: Reader :: read_double
Read a floating point on 64 bits and return it as aFloat
			core :: Reader :: read_float
Read a floating point on 32 bits and return it as aFloat
			core :: Reader :: read_int64
Read a signed integer on 64 bits and return is anInt
			core :: Reader :: read_msgpack
Read the next MessagePack object and return it as a simple Nit objectcore :: Reader :: read_nonwhitespace
Skip whitespace characters (if any) then return the following non-whitespace character.core :: FileStream :: set_buffering_mode
Sets the buffering mode for the current FileStreamcore :: Stream :: write_buffer
Buffer for writing data to a streamcore :: Stream :: write_buffer=
Buffer for writing data to a streamReader capable of declaring if readable without blocking
			
# `Stream` that can read from a File
class FileReader
	super FileStream
	super PollableReader
	# Misc
	# Open the same file again.
	# The original path is reused, therefore the reopened file can be a different file.
	#
	#     var f = new FileReader.open("/etc/issue")
	#     var l = f.read_line
	#     f.reopen
	#     assert l == f.read_line
	fun reopen
	do
		var fl = _file
		if fl != null and not fl.address_is_null then close
		last_error = null
		_file = new NativeFile.io_open_read(path.as(not null).to_cstring)
		if _file.as(not null).address_is_null then
			last_error = new IOError("Cannot open `{path.as(not null)}`: {sys.errno.strerror}")
			return
		end
	end
	redef fun raw_read_byte
	do
		var nb = _file.as(not null).io_read(write_buffer, 1)
		if last_error == null and _file.as(not null).ferror then
			last_error = new IOError("Cannot read `{path.as(not null)}`: {sys.errno.strerror}")
		end
		if nb == 0 then return -1
		return write_buffer[0].to_i
	end
	redef fun raw_read_bytes(cstr, max)
	do
		var nb = _file.as(not null).io_read(cstr, max)
		if last_error == null and _file.as(not null).ferror then
			last_error = new IOError("Cannot read `{path.as(not null)}`: {sys.errno.strerror}")
		end
		return nb
	end
	redef fun eof do
		var fl = _file
		if fl == null then return true
		if fl.address_is_null then return true
		if last_error != null then return true
		if super then
			if last_error != null then return true
			return fl.feof
		end
		return false
	end
	# Open the file at `path` for reading.
	#
	#     var f = new FileReader.open("/etc/issue")
	#     assert not f.eof
	#     f.close
	#
	# In case of error, `last_error` is set
	#
	#     f = new FileReader.open("/fail/does not/exist")
	#     assert f.eof
	#     assert f.last_error != null
	init open(path: String)
	do
		self.path = path
		_file = new NativeFile.io_open_read(path.to_cstring)
		if _file.as(not null).address_is_null then
			last_error = new IOError("Cannot open `{path}`: {sys.errno.strerror}")
		end
	end
	# Creates a new File stream from a file descriptor
	#
	# This is a low-level method.
	init from_fd(fd: Int) do
		self.path = ""
		_file = fd.fd_to_stream(read_only)
		if _file.as(not null).address_is_null then
			last_error = new IOError("Error: Converting fd {fd} to stream failed with '{sys.errno.strerror}'")
		end
	end
	redef fun poll_in
	do
		var res = native_poll_in(fd)
		if res == -1 then
			last_error = new IOError(errno.to_s)
			return false
		else return res > 0
	end
	private fun native_poll_in(fd: Int): Int `{
#ifndef _WIN32
		struct pollfd fds = {(int)fd, POLLIN, 0};
		return poll(&fds, 1, 0);
#else
		return 0;
#endif
	`}
end
					lib/core/file.nit:101,1--205,3