ObjFW
Instance Methods | Class Methods | List of all members
OFFile Class Reference

A class which provides methods to read and write files. More...

#import <ObjFW/OFFile.h>

Inheritance diagram for OFFile:
OFSeekableStream OFStream OFObject <OFReadyForReadingObserving> <OFReadyForWritingObserving> <OFCopying> <OFObject>

Instance Methods

(id) - initWithPath:mode:
 Initializes an already allocated OFFile. More...
 
(id) - initWithHandle:
 Initializes an already allocated OFFile. More...
 
- Instance Methods inherited from OFSeekableStream
(of_offset_t) - seekToOffset:whence:
 Seeks to the specified absolute offset. More...
 
(of_offset_t) - lowlevelSeekToOffset:whence:
 Seek the stream on the lowlevel. More...
 
- Instance Methods inherited from OFStream
(bool) - isAtEndOfStream
 Returns a boolean whether the end of the stream has been reached. More...
 
(size_t) - readIntoBuffer:length:
 Reads at most size bytes from the stream into a buffer. More...
 
(void) - readIntoBuffer:exactLength:
 Reads exactly the specified length bytes from the stream into a buffer. More...
 
(void) - asyncReadIntoBuffer:length:target:selector:
 Asynchronously reads at most size bytes from the stream into a buffer. More...
 
(void) - asyncReadIntoBuffer:exactLength:target:selector:
 Asynchronously reads exactly the specified length bytes from the stream into a buffer. More...
 
(void) - asyncReadIntoBuffer:length:block:
 Asynchronously reads at most ref size bytes from the stream into a buffer. More...
 
(void) - asyncReadIntoBuffer:exactLength:block:
 Asynchronously reads exactly the specified length bytes from the stream into a buffer. More...
 
(uint8_t) - readInt8
 Reads a uint8_t from the stream. More...
 
(uint16_t) - readBigEndianInt16
 Reads a uint16_t from the stream which is encoded in big endian. More...
 
(uint32_t) - readBigEndianInt32
 Reads a uint32_t from the stream which is encoded in big endian. More...
 
(uint64_t) - readBigEndianInt64
 Reads a uint64_t from the stream which is encoded in big endian. More...
 
(float) - readBigEndianFloat
 Reads a float from the stream which is encoded in big endian. More...
 
(double) - readBigEndianDouble
 Reads a double from the stream which is encoded in big endian. More...
 
(size_t) - readBigEndianInt16sIntoBuffer:count:
 Reads the specified number of uint16_ts from the stream which are encoded in big endian. More...
 
(size_t) - readBigEndianInt32sIntoBuffer:count:
 Reads the specified number of uint32_ts from the stream which are encoded in big endian. More...
 
(size_t) - readBigEndianInt64sIntoBuffer:count:
 Reads the specified number of uint64_ts from the stream which are encoded in big endian. More...
 
(size_t) - readBigEndianFloatsIntoBuffer:count:
 Reads the specified number of floats from the stream which are encoded in big endian. More...
 
(size_t) - readBigEndianDoublesIntoBuffer:count:
 Reads the specified number of doubles from the stream which are encoded in big endian. More...
 
(uint16_t) - readLittleEndianInt16
 Reads a uint16_t from the stream which is encoded in little endian. More...
 
(uint32_t) - readLittleEndianInt32
 Reads a uint32_t from the stream which is encoded in little endian. More...
 
(uint64_t) - readLittleEndianInt64
 Reads a uint64_t from the stream which is encoded in little endian. More...
 
(float) - readLittleEndianFloat
 Reads a float from the stream which is encoded in little endian. More...
 
(double) - readLittleEndianDouble
 Reads a double from the stream which is encoded in little endian. More...
 
(size_t) - readLittleEndianInt16sIntoBuffer:count:
 Reads the specified number of uint16_ts from the stream which are encoded in little endian. More...
 
(size_t) - readLittleEndianInt32sIntoBuffer:count:
 Reads the specified number of uint32_ts from the stream which are encoded in little endian. More...
 
(size_t) - readLittleEndianInt64sIntoBuffer:count:
 Reads the specified number of uint64_ts from the stream which are encoded in little endian. More...
 
(size_t) - readLittleEndianFloatsIntoBuffer:count:
 Reads the specified number of floats from the stream which are encoded in little endian. More...
 
(size_t) - readLittleEndianDoublesIntoBuffer:count:
 Reads the specified number of doubles from the stream which are encoded in little endian. More...
 
(OFData *) - readDataWithCount:
 Reads the specified number of items with an item size of 1 from the stream and returns them as OFData. More...
 
(OFData *) - readDataWithItemSize:count:
 Reads the specified number of items with the specified item size from the stream and returns them as OFData. More...
 
(OFData *) - readDataUntilEndOfStream
 Returns OFData with all the remaining data of the stream. More...
 
(OFString *) - readStringWithLength:
 Reads a string with the specified length from the stream. More...
 
(OFString *) - readStringWithLength:encoding:
 Reads a string with the specified encoding and length from the stream. More...
 
(nullable OFString *) - readLine
 Reads until a newline, \0 or end of stream occurs. More...
 
(nullable OFString *) - readLineWithEncoding:
 Reads with the specified encoding until a newline, \0 or end of stream occurs. More...
 
(void) - asyncReadLineWithTarget:selector:
 Asynchronously reads until a newline, \0, end of stream or an exception occurs. More...
 
(void) - asyncReadLineWithEncoding:target:selector:
 Asynchronously reads with the specified encoding until a newline, \0, end of stream or an exception occurs. More...
 
(void) - asyncReadLineWithBlock:
 Asynchronously reads until a newline, \0, end of stream or an exception occurs. More...
 
(void) - asyncReadLineWithEncoding:block:
 Asynchronously reads with the specified encoding until a newline, \0, end of stream or an exception occurs. More...
 
(nullable OFString *) - tryReadLine
 Tries to read a line from the stream (see readLine) and returns nil if no complete line has been received yet. More...
 
(nullable OFString *) - tryReadLineWithEncoding:
 Tries to read a line from the stream with the specified encoding (see readLineWithEncoding:) and returns nil if no complete line has been received yet. More...
 
(nullable OFString *) - readTillDelimiter:
 Reads until the specified string or \0 is found or the end of stream occurs. More...
 
(nullable OFString *) - readTillDelimiter:encoding:
 Reads until the specified string or \0 is found or the end of stream occurs. More...
 
(nullable OFString *) - tryReadTillDelimiter:
 Tries to reads until the specified string or \0 is found or the end of stream (see readTillDelimiter:) and returns nil if not enough data has been received yet. More...
 
(nullable OFString *) - tryReadTillDelimiter:encoding:
 Tries to read until the specified string or \0 is found or the end of stream occurs (see readTillDelimiter:encoding:) and returns nil if not enough data has been received yet. More...
 
(bool) - isWriteBuffered
 Returns a boolean whether writes are buffered. More...
 
(void) - setWriteBuffered:
 Enables or disables the write buffer. More...
 
(void) - flushWriteBuffer
 Writes everything in the write buffer to the stream.
 
(void) - writeBuffer:length:
 Writes from a buffer into the stream. More...
 
(void) - writeInt8:
 Writes a uint8_t into the stream. More...
 
(void) - writeBigEndianInt16:
 Writes a uint16_t into the stream, encoded in big endian. More...
 
(void) - writeBigEndianInt32:
 Writes a uint32_t into the stream, encoded in big endian. More...
 
(void) - writeBigEndianInt64:
 Writes a uint64_t into the stream, encoded in big endian. More...
 
(void) - writeBigEndianFloat:
 Writes a float into the stream, encoded in big endian. More...
 
(void) - writeBigEndianDouble:
 Writes a double into the stream, encoded in big endian. More...
 
(size_t) - writeBigEndianInt16s:count:
 Writes the specified number of uint16_ts into the stream, encoded in big endian. More...
 
(size_t) - writeBigEndianInt32s:count:
 Writes the specified number of uint32_ts into the stream, encoded in big endian. More...
 
(size_t) - writeBigEndianInt64s:count:
 Writes the specified number of uint64_ts into the stream, encoded in big endian. More...
 
(size_t) - writeBigEndianFloats:count:
 Writes the specified number of floats into the stream, encoded in big endian. More...
 
(size_t) - writeBigEndianDoubles:count:
 Writes the specified number of doubles into the stream, encoded in big endian. More...
 
(void) - writeLittleEndianInt16:
 Writes a uint16_t into the stream, encoded in little endian. More...
 
(void) - writeLittleEndianInt32:
 Writes a uint32_t into the stream, encoded in little endian. More...
 
(void) - writeLittleEndianInt64:
 Writes a uint64_t into the stream, encoded in little endian. More...
 
(void) - writeLittleEndianFloat:
 Writes a float into the stream, encoded in little endian. More...
 
(void) - writeLittleEndianDouble:
 Writes a double into the stream, encoded in little endian. More...
 
(size_t) - writeLittleEndianInt16s:count:
 Writes the specified number of uint16_ts into the stream, encoded in little endian. More...
 
(size_t) - writeLittleEndianInt32s:count:
 Writes the specified number of uint32_ts into the stream, encoded in little endian. More...
 
(size_t) - writeLittleEndianInt64s:count:
 Writes the specified number of uint64_ts into the stream, encoded in little endian. More...
 
(size_t) - writeLittleEndianFloats:count:
 Writes the specified number of floats into the stream, encoded in little endian. More...
 
(size_t) - writeLittleEndianDoubles:count:
 Writes the specified number of doubles into the stream, encoded in little endian. More...
 
(size_t) - writeData:
 Writes OFData into the stream. More...
 
(size_t) - writeString:
 Writes a string into the stream, without the trailing zero. More...
 
(size_t) - writeString:encoding:
 Writes a string into the stream in the specified encoding, without the trailing zero. More...
 
(size_t) - writeLine:
 Writes a string into the stream with a trailing newline. More...
 
(size_t) - writeLine:encoding:
 Writes a string into the stream in the specified encoding with a trailing newline. More...
 
(size_t) - writeFormat:
 Writes a formatted string into the stream. More...
 
(size_t) - writeFormat:arguments:
 Writes a formatted string into the stream. More...
 
(bool) - hasDataInReadBuffer
 Returns whether data is present in the internal read buffer. More...
 
(bool) - isBlocking
 Returns whether the stream is in blocking mode. More...
 
(void) - setBlocking:
 Enables or disables non-blocking I/O. More...
 
(int) - fileDescriptorForReading
 Returns the file descriptor for the read end of the stream. More...
 
(int) - fileDescriptorForWriting
 Returns the file descriptor for the write end of the stream. More...
 
(void) - cancelAsyncRequests
 Cancels all pending asynchronous requests on the stream.
 
(void) - unreadFromBuffer:length:
 "Reverses" a read operation, meaning the bytes from the specified buffer will be returned on the next read operation. More...
 
(void) - close
 Closes the stream. More...
 
(size_t) - lowlevelReadIntoBuffer:length:
 Performs a lowlevel read. More...
 
(void) - lowlevelWriteBuffer:length:
 Performs a lowlevel write. More...
 
(bool) - lowlevelIsAtEndOfStream
 Returns whether the lowlevel is at the end of the stream. More...
 
- Instance Methods inherited from OFObject
(id) - init
 Initializes an already allocated object. More...
 
(OFString *) - className
 Returns the name of the object's class. More...
 
(OFString *) - description
 Returns a description for the object. More...
 
(nullable void *) - allocMemoryWithSize:
 Allocates memory and stores it in the object's memory pool. More...
 
(nullable void *) - allocMemoryWithSize:count:
 Allocates memory for the specified number of items and stores it in the object's memory pool. More...
 
(nullable void *) - resizeMemory:size:
 Resizes memory in the object's memory pool to the specified size. More...
 
(nullable void *) - resizeMemory:size:count:
 Resizes memory in the object's memory pool to the specific number of items of the specified size. More...
 
(void) - freeMemory:
 Frees allocated memory and removes it from the object's memory pool. More...
 
(void) - dealloc
 Deallocates the object. More...
 
(void) - performSelector:afterDelay:
 Performs the specified selector after the specified delay. More...
 
(void) - performSelector:withObject:afterDelay:
 Performs the specified selector with the specified object after the specified delay. More...
 
(void) - performSelector:withObject:withObject:afterDelay:
 Performs the specified selector with the specified objects after the specified delay. More...
 
(void) - performSelector:onThread:waitUntilDone:
 Performs the specified selector on the specified thread. More...
 
(void) - performSelector:onThread:withObject:waitUntilDone:
 Performs the specified selector on the specified thread with the specified object. More...
 
(void) - performSelector:onThread:withObject:withObject:waitUntilDone:
 Performs the specified selector on the specified thread with the specified objects. More...
 
(void) - performSelectorOnMainThread:waitUntilDone:
 Performs the specified selector on the main thread. More...
 
(void) - performSelectorOnMainThread:withObject:waitUntilDone:
 Performs the specified selector on the main thread with the specified object. More...
 
(void) - performSelectorOnMainThread:withObject:withObject:waitUntilDone:
 Performs the specified selector on the main thread with the specified objects. More...
 
(void) - performSelector:onThread:afterDelay:
 Performs the specified selector on the specified thread after the specified delay. More...
 
(void) - performSelector:onThread:withObject:afterDelay:
 Performs the specified selector on the specified thread with the specified object after the specified delay. More...
 
(void) - performSelector:onThread:withObject:withObject:afterDelay:
 Performs the specified selector on the specified thread with the specified objects after the specified delay. More...
 
(nullable id) - forwardingTargetForSelector:
 This method is called when resolveClassMethod: or resolveInstanceMethod: returned false. It should return a target to which the message should be forwarded. More...
 
(void) - doesNotRecognizeSelector:
 Handles messages which are not understood by the receiver. More...
 
(OFString *) - stringBySerializing
 Creates a string by serializing the receiver. More...
 
- Instance Methods inherited from <OFObject>
(bool) - isKindOfClass:
 Returns a boolean whether the object of the specified kind. More...
 
(bool) - isMemberOfClass:
 Returns a boolean whether the object is a member of the specified class. More...
 
(bool) - respondsToSelector:
 Returns a boolean whether the object responds to the specified selector. More...
 
(nullable IMP) - methodForSelector:
 Returns the implementation for the specified selector. More...
 
(nullable const char *) - typeEncodingForSelector:
 Returns the type encoding for the specified selector. More...
 
(nullable id) - performSelector:
 Performs the specified selector. More...
 
(nullable id) - performSelector:withObject:
 Performs the specified selector with the specified object. More...
 
(nullable id) - performSelector:withObject:withObject:
 Performs the specified selector with the specified objects. More...
 
(bool) - isEqual:
 Checks two objects for equality. More...
 
(uint32_t) - hash
 Calculates a hash for the object. More...
 
(id) - retain
 Increases the retain count. More...
 
(unsigned int) - retainCount
 Returns the retain count. More...
 
(void) - release
 Decreases the retain count. More...
 
(id) - autorelease
 Adds the object to the topmost OFAutoreleasePool of the thread's autorelease pool stack. More...
 
(id) - self
 Returns the receiver. More...
 
(bool) - isProxy
 Returns whether the object is a proxy object. More...
 
(bool) - allowsWeakReference
 Returns whether the class allows weak references. More...
 
(bool) - retainWeakReference
 Retain a weak reference to this object. More...
 
- Instance Methods inherited from <OFCopying>
(id) - copy
 Copies the object. More...
 

Class Methods

(instancetype) + fileWithPath:mode:
 Creates a new OFFile with the specified path and mode. More...
 
(instancetype) + fileWithHandle:
 Creates a new OFFile with the specified native file handle. More...
 
- Class Methods inherited from OFObject
(void) + load
 A method which is called once when the class is loaded into the runtime. More...
 
(void) + unload
 A method which is called when the class is unloaded from the runtime. More...
 
(void) + initialize
 A method which is called the moment before the first call to the class is being made. More...
 
(id) + alloc
 Allocates memory for an instance of the class and sets up the memory pool for the object. More...
 
(id) + new
 Allocates memory for a new instance and calls init on it. More...
 
(Class) + class
 Returns the class. More...
 
(OFString *) + className
 Returns the name of the class as a string. More...
 
(bool) + isSubclassOfClass:
 Returns a boolean whether the class is a subclass of the specified class. More...
 
(nullable Class) + superclass
 Returns the superclass of the class. More...
 
(bool) + instancesRespondToSelector:
 Checks whether instances of the class respond to a given selector. More...
 
(bool) + conformsToProtocol:
 Checks whether the class conforms to a given protocol. More...
 
(nullable IMP) + instanceMethodForSelector:
 Returns the implementation of the instance method for the specified selector. More...
 
(nullable const char *) + typeEncodingForInstanceSelector:
 Returns the type encoding of the instance method for the specified selector. More...
 
(OFString *) + description
 Returns a description for the class, which is usually the class name. More...
 
(nullable IMP) + replaceClassMethod:withMethodFromClass:
 Replaces a class method with a class method from another class. More...
 
(nullable IMP) + replaceInstanceMethod:withMethodFromClass:
 Replaces an instance method with an instance method from another class. More...
 
(nullable IMP) + replaceClassMethod:withImplementation:typeEncoding:
 Replaces or adds a class method. More...
 
(nullable IMP) + replaceInstanceMethod:withImplementation:typeEncoding:
 Replaces or adds an instance method. More...
 
(void) + inheritMethodsFromClass:
 Adds all methods from the specified class to the class that is the receiver. More...
 
(BOOL) + resolveClassMethod:
 Try to resolve the specified class method. More...
 
(BOOL) + resolveInstanceMethod:
 Try to resolve the specified instance method. More...
 
(id) + copy
 Returns the class. More...
 

Detailed Description

A class which provides methods to read and write files.

Method Documentation

◆ fileWithHandle:()

+ (instancetype) fileWithHandle: (of_file_handle_t)  handle

Creates a new OFFile with the specified native file handle.

Parameters
handleA native file handle. If OF_FILE_HANDLE_IS_FD is defined, this is a file descriptor. The handle is closed when the OFFile object is deallocated!
Returns
A new autoreleased OFFile

◆ fileWithPath:mode:()

+ (instancetype) fileWithPath: (OFString *)  path
mode: (OFString *)  mode 

Creates a new OFFile with the specified path and mode.

Parameters
pathThe path to the file to open as a string
modeThe mode in which the file should be opened.
Possible modes are:
Mode Description
r Read-only
r+ Read-write
w Write-only, create or truncate
wx Write-only, create or fail, exclusive
w+ Read-write, create or truncate
w+x Read-write, create or fail, exclusive
a Write-only, create or append
a+ Read-write, create or append
Returns
A new autoreleased OFFile

◆ initWithHandle:()

- (id) initWithHandle: (of_file_handle_t)  handle

Initializes an already allocated OFFile.

Parameters
handleA native file handle. If OF_FILE_HANDLE_IS_FD is defined, this is a file descriptor. The handle is closed when the OFFile object is deallocated!
Returns
An initialized OFFile

◆ initWithPath:mode:()

- (id) initWithPath: (OFString *)  path
mode: (OFString *)  mode 

Initializes an already allocated OFFile.

Parameters
pathThe path to the file to open as a string
modeThe mode in which the file should be opened.
Possible modes are:
Mode Description
r read-only
rb read-only, binary
r+ read-write
rb+ or r+b read-write, binary
w write-only, create, truncate
wb write-only, create, truncate, binary
w read-write, create, truncate
wb+ or w+b read-write, create, truncate, binary
a write-only, create, append
ab write-only, create, append, binary
a+ read-write, create, append
ab+ or a+b read-write, create, append, binary
Returns
An initialized OFFile

The documentation for this class was generated from the following files: