- Inherits from:
- NSObject
- Package:
- com.apple.yellow.foundation
An NSData object stores immutable data in the form of bytes.
NSData | Creates a data object. |
length | Returns the number of bytes contained by the data object. |
bytes | Returns a pointer to the data object's contents. |
length | Returns the number of bytes contained by the data object. |
NSData and its subclass NSMutableData provide data objects, object-oriented wrappers for byte buffers. Data objects let simple allocated buffers (that is, data with no embedded pointers) take on the behavior of Foundation Kit objects. NSData creates static data objects, and NSMutableData creates dynamic data objects. They're typically used for data storage, and are also useful in Distributed Objects applications, where data contained in data objects can be copied or moved between applications.
Data objects can wrap data of any size. When the data size is more than a few memory pages, the object uses virtual memory management. A data object can also wrap pre-existing data, regardless of how the data was allocated. The object contains no information about the data itself (such as its type); the responsibility for deciding how to use the data lies with the client. In particular, it will not handle byte-order swapping when distributed between big-endian and little-endian machines.
Data objects provide an operating system-independent way to benefit from copy-on-write memory. The copy-on-write technique means that when data is copied through a virtual memory copy, an actual copy of the data is not made until there is an attempt to modify it.
NSData's two primitive methods-bytes and length-provide the basis for all of the other methods in the interface. The bytes method returns a pointer to the bytes contained in the data object. length returns the number of bytes contained in the data object.
To extract a data object that contains a subset of the bytes in another data object, use the subdataWithRange method. To determine if two data objects are equal, use the isEqualToData method, which does a byte-for-byte comparison.
The writeToURL method lets you write the contents of a data object to a location on the Internet.
- Constructors
- NSData
- Creating data objects
- dataWithContentsOfMappedFile
- Accessing data
- bytes
- subdataWithRange
- Testing data
- isEqualToData
- length
- Storing data
- writeToURL
public NSData()
Creates an empty data object. This method is declared primarily for the use of mutable subclasses of NSData.
public NSData(
byte[] bytes,
int start,
int length)
Creates a data object with length bytes from the buffer bytes, starting at start .
public NSData(byte[] bytes)
Creates a data object with all the data in the buffer bytes.
public NSData(java.io.File aFile)
Creates a data object with the data from the file specified by aFile.
public NSData(java.net.URL anURL)
Creates a data object with the data from the location specified by anURL.
public NSData(NSData aData)
Creates a data object containing the contents of another data object, aData.
public NSData(String aString)
Creates a data object containing the contents of aString.
public static NSData dataWithContentsOfMappedFile(java.io.File file)
Creates and returns a data object from the mapped file specified by file. Because of file mapping restrictions, this method should only be used if the file is guaranteed to exist for the duration of the data object's existence.
This methods assumes mapped files are available from the underlying operating system. A mapped file uses virtual memory techniques to avoid copying pages of the file into memory until they are actually needed.
public byte[] bytes(
int start,
int length)
Returns a byte array of length bytes from the data object's contents starting at start.
public boolean isEqualToData(NSData otherData)
Compares the receiving data object to otherData. If the contents of otherData are equal to the contents of the receiver, this method returns true. If not, it returns false. Two data objects are equal if they hold the same number of bytes, and if the bytes at the same position in the objects are the same.
public int length()
Returns the number of bytes contained in the receiver.
public NSData subdataWithRange(NSRange range)
Returns a data object containing a copy of the receiver's bytes that fall within the limits specified by range. If range isn't within the receiver's range of bytes, a RangeException is thrown.
public boolean writeToURL(
java.net.URL anURL,
boolean atomically)
Writes the bytes in the receiver to the location specified by anURL. If atomically is true, the data is written to a backup file and then, assuming no errors occur, the backup file is renamed to the specified name. Otherwise, the data is written directly to the specified location. atomically is ignored if the anURL is not of a type the supports atomic writes
This method returns true if the operation succeeds; otherwise, it returns false.