---
title: "Low-Level File Operations"
language: "en"
type: "Guide"
summary: "The Wolfram Language provides efficient system-independent direct access to all aspects of files of any size."
sections: 
  - 
    title: "File Opening & Closing"
    link: "null"
  - 
    title: "File Options"
    link: "null"
  - 
    title: "Streams"
    link: "null"
  - 
    title: "Reading & Writing"
    link: "null"
  - 
    title: "Seeking in Streams"
    link: "null"
  - 
    title: "Binary Data"
    link: "paclet:guide/BinaryData"
  - 
    title: "Stream Methods"
    link: "paclet:guide/StreamMethods"
keywords: 
- append-mode
- binary read
- binary read list
- binary write
- character encoding
- data input
- default options
- devices
- discard data
- file encoding
- file pointer position
- finding options for output
- finding options for streams
- ignore data
- input from data file
- input stream
- list of open files
- list of open streams
- low-level data
- open append
- opened file
- open file for reading
- open file for writing
- opening input streams
- opening output streams
- opening streams for input
- opening streams for writing
- open read
- open stream for output
- open write
- options for streams
- output stream
- position in files
- random access
- random access to files
- raw data
- raw output
- reading binary data
- reading data files
- reading data from files
- reading data from pipes
- reading data from programs
- reading data from spreadsheets
- reading data from streams
- reading from strings
- reading matrices from data files
- read list
- read-mode
- seek
- sequential reading from files
- sequential searching
- set options
- set stream position
- sscanf
- stream position
- string to stream
- treating strings like files
- turning files into strings
- write-mode
- write string
- writing binary files
- fdopen
- fileno
- fopen
- fpos_t
- fprintf
- fputc
- fputs
- fputwc
- fputws
- fread
- freopen
- fscanf
- fseek
- fsetpos
- ftell
- fwrite
- fwscanf
- getc
- getchar
- gets
- getwc
- getwchar
- printf
- putc
- putchar
- puts
- putwc
- putwchar
- rewind
- scanf
- swprintf
- swscanf
canonical_url: "https://reference.wolfram.com/language/guide/LowLevelFileOperations.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "File Operations"
    link: "https://reference.wolfram.com/language/guide/FileOperations.en.md"
  - 
    title: "Files"
    link: "https://reference.wolfram.com/language/guide/Files.en.md"
  - 
    title: "String Manipulation"
    link: "https://reference.wolfram.com/language/guide/StringManipulation.en.md"
related_functions: 
  - 
    title: "BinaryFormat"
    link: "https://reference.wolfram.com/language/ref/BinaryFormat.en.md"
  - 
    title: "BinaryRead"
    link: "https://reference.wolfram.com/language/ref/BinaryRead.en.md"
  - 
    title: "BinaryReadList"
    link: "https://reference.wolfram.com/language/ref/BinaryReadList.en.md"
  - 
    title: "BinaryWrite"
    link: "https://reference.wolfram.com/language/ref/BinaryWrite.en.md"
  - 
    title: "Byte"
    link: "https://reference.wolfram.com/language/ref/Byte.en.md"
  - 
    title: "Character"
    link: "https://reference.wolfram.com/language/ref/Character.en.md"
  - 
    title: "CharacterEncoding"
    link: "https://reference.wolfram.com/language/ref/CharacterEncoding.en.md"
  - 
    title: "Close"
    link: "https://reference.wolfram.com/language/ref/Close.en.md"
  - 
    title: "CreateFile"
    link: "https://reference.wolfram.com/language/ref/CreateFile.en.md"
  - 
    title: "DefineInputStreamMethod"
    link: "https://reference.wolfram.com/language/ref/DefineInputStreamMethod.en.md"
  - 
    title: "DefineOutputStreamMethod"
    link: "https://reference.wolfram.com/language/ref/DefineOutputStreamMethod.en.md"
  - 
    title: "Expression"
    link: "https://reference.wolfram.com/language/ref/Expression.en.md"
  - 
    title: "Find"
    link: "https://reference.wolfram.com/language/ref/Find.en.md"
  - 
    title: "InputStream"
    link: "https://reference.wolfram.com/language/ref/InputStream.en.md"
  - 
    title: "NullRecords"
    link: "https://reference.wolfram.com/language/ref/NullRecords.en.md"
  - 
    title: "NullWords"
    link: "https://reference.wolfram.com/language/ref/NullWords.en.md"
  - 
    title: "Number"
    link: "https://reference.wolfram.com/language/ref/Number.en.md"
  - 
    title: "OpenAppend"
    link: "https://reference.wolfram.com/language/ref/OpenAppend.en.md"
  - 
    title: "OpenRead"
    link: "https://reference.wolfram.com/language/ref/OpenRead.en.md"
  - 
    title: "OpenWrite"
    link: "https://reference.wolfram.com/language/ref/OpenWrite.en.md"
  - 
    title: "Options"
    link: "https://reference.wolfram.com/language/ref/Options.en.md"
  - 
    title: "OutputStream"
    link: "https://reference.wolfram.com/language/ref/OutputStream.en.md"
  - 
    title: "PageWidth"
    link: "https://reference.wolfram.com/language/ref/PageWidth.en.md"
  - 
    title: "Read"
    link: "https://reference.wolfram.com/language/ref/Read.en.md"
  - 
    title: "ReadByteArray"
    link: "https://reference.wolfram.com/language/ref/ReadByteArray.en.md"
  - 
    title: "ReadLine"
    link: "https://reference.wolfram.com/language/ref/ReadLine.en.md"
  - 
    title: "ReadList"
    link: "https://reference.wolfram.com/language/ref/ReadList.en.md"
  - 
    title: "ReadString"
    link: "https://reference.wolfram.com/language/ref/ReadString.en.md"
  - 
    title: "Real"
    link: "https://reference.wolfram.com/language/ref/Real.en.md"
  - 
    title: "Record"
    link: "https://reference.wolfram.com/language/ref/Record.en.md"
  - 
    title: "RecordLists"
    link: "https://reference.wolfram.com/language/ref/RecordLists.en.md"
  - 
    title: "RecordSeparators"
    link: "https://reference.wolfram.com/language/ref/RecordSeparators.en.md"
  - 
    title: "SetOptions"
    link: "https://reference.wolfram.com/language/ref/SetOptions.en.md"
  - 
    title: "SetStreamPosition"
    link: "https://reference.wolfram.com/language/ref/SetStreamPosition.en.md"
  - 
    title: "Skip"
    link: "https://reference.wolfram.com/language/ref/Skip.en.md"
  - 
    title: "StreamPosition"
    link: "https://reference.wolfram.com/language/ref/StreamPosition.en.md"
  - 
    title: "Streams"
    link: "https://reference.wolfram.com/language/ref/Streams.en.md"
  - 
    title: "String"
    link: "https://reference.wolfram.com/language/ref/String.en.md"
  - 
    title: "StringToStream"
    link: "https://reference.wolfram.com/language/ref/StringToStream.en.md"
  - 
    title: "TokenWords"
    link: "https://reference.wolfram.com/language/ref/TokenWords.en.md"
  - 
    title: "Word"
    link: "https://reference.wolfram.com/language/ref/Word.en.md"
  - 
    title: "WordSeparators"
    link: "https://reference.wolfram.com/language/ref/WordSeparators.en.md"
  - 
    title: "Write"
    link: "https://reference.wolfram.com/language/ref/Write.en.md"
  - 
    title: "WriteLine"
    link: "https://reference.wolfram.com/language/ref/WriteLine.en.md"
  - 
    title: "WriteString"
    link: "https://reference.wolfram.com/language/ref/WriteString.en.md"
related_tutorials: 
  - 
    title: "Streams and Low‐Level Input and Output"
    link: "https://reference.wolfram.com/language/tutorial/FilesStreamsAndExternalOperations.en.md#21617"
  - 
    title: "Files and Streams"
    link: "https://reference.wolfram.com/language/tutorial/FilesAndStreams.en.md"
  - 
    title: "Binary Files"
    link: "https://reference.wolfram.com/language/tutorial/FilesStreamsAndExternalOperations.en.md#36050527"
---
# Low-Level File Operations

The Wolfram Language provides efficient system-independent direct access to all aspects of files of any size.

---

### File Opening & Closing

* [`OpenRead`](https://reference.wolfram.com/language/ref/OpenRead.en.md)
* [`OpenWrite`](https://reference.wolfram.com/language/ref/OpenWrite.en.md)
* [`OpenAppend`](https://reference.wolfram.com/language/ref/OpenAppend.en.md)
* [`CreateFile`](https://reference.wolfram.com/language/ref/CreateFile.en.md)
* [`Close`](https://reference.wolfram.com/language/ref/Close.en.md)

### File Options

* [`Options`](https://reference.wolfram.com/language/ref/Options.en.md)
* [`SetOptions`](https://reference.wolfram.com/language/ref/SetOptions.en.md)
* [`CharacterEncoding`](https://reference.wolfram.com/language/ref/CharacterEncoding.en.md)
* [`PageWidth`](https://reference.wolfram.com/language/ref/PageWidth.en.md)
* [`BinaryFormat`](https://reference.wolfram.com/language/ref/BinaryFormat.en.md)

### Streams

* [`Streams`](https://reference.wolfram.com/language/ref/Streams.en.md)
* [`OutputStream`](https://reference.wolfram.com/language/ref/OutputStream.en.md)
* [`InputStream`](https://reference.wolfram.com/language/ref/InputStream.en.md)
* [`StringToStream`](https://reference.wolfram.com/language/ref/StringToStream.en.md)

### Reading & Writing

* [`Read`](https://reference.wolfram.com/language/ref/Read.en.md)
* [`ReadList`](https://reference.wolfram.com/language/ref/ReadList.en.md)
* [`ReadString`](https://reference.wolfram.com/language/ref/ReadString.en.md)
* [`ReadLine`](https://reference.wolfram.com/language/ref/ReadLine.en.md)
* [`Write`](https://reference.wolfram.com/language/ref/Write.en.md)
* [`WriteString`](https://reference.wolfram.com/language/ref/WriteString.en.md)
* [`WriteLine`](https://reference.wolfram.com/language/ref/WriteLine.en.md)

---

[`Byte`](https://reference.wolfram.com/language/ref/Byte.en.md), [`Number`](https://reference.wolfram.com/language/ref/Number.en.md) — specify data to read

* [`Character`](https://reference.wolfram.com/language/ref/Character.en.md)
* [`Record`](https://reference.wolfram.com/language/ref/Record.en.md)
* [`Word`](https://reference.wolfram.com/language/ref/Word.en.md)
* [`Real`](https://reference.wolfram.com/language/ref/Real.en.md)
* [`String`](https://reference.wolfram.com/language/ref/String.en.md)
* [`Expression`](https://reference.wolfram.com/language/ref/Expression.en.md)

[`RecordSeparators`](https://reference.wolfram.com/language/ref/RecordSeparators.en.md), [`WordSeparators`](https://reference.wolfram.com/language/ref/WordSeparators.en.md) — specify data delimiters

* [`TokenWords`](https://reference.wolfram.com/language/ref/TokenWords.en.md)
* [`NullWords`](https://reference.wolfram.com/language/ref/NullWords.en.md)
* [`NullRecords`](https://reference.wolfram.com/language/ref/NullRecords.en.md)
* [`RecordLists`](https://reference.wolfram.com/language/ref/RecordLists.en.md)

### Seeking in Streams

* [`Skip`](https://reference.wolfram.com/language/ref/Skip.en.md)
* [`Find`](https://reference.wolfram.com/language/ref/Find.en.md)
* [`StreamPosition`](https://reference.wolfram.com/language/ref/StreamPosition.en.md)
* [`SetStreamPosition`](https://reference.wolfram.com/language/ref/SetStreamPosition.en.md)

### [Binary Data](https://reference.wolfram.com/language/guide/BinaryData.en.md)

* [`BinaryRead`](https://reference.wolfram.com/language/ref/BinaryRead.en.md)
* [`BinaryReadList`](https://reference.wolfram.com/language/ref/BinaryReadList.en.md)
* [`ReadByteArray`](https://reference.wolfram.com/language/ref/ReadByteArray.en.md)
* [`BinaryWrite`](https://reference.wolfram.com/language/ref/BinaryWrite.en.md)
* [`...`](https://reference.wolfram.com/language/guide/BinaryData.en.md)

### [Stream Methods](https://reference.wolfram.com/language/guide/StreamMethods.en.md)

* [`DefineInputStreamMethod`](https://reference.wolfram.com/language/ref/DefineInputStreamMethod.en.md)
* [`DefineOutputStreamMethod`](https://reference.wolfram.com/language/ref/DefineOutputStreamMethod.en.md)
* [`...`](https://reference.wolfram.com/language/guide/StreamMethods.en.md)

## Tech Notes

* [Streams and Low‐Level Input and Output](https://reference.wolfram.com/language/tutorial/FilesStreamsAndExternalOperations.en.md#21617)
* [Files and Streams](https://reference.wolfram.com/language/tutorial/FilesAndStreams.en.md)
* [Binary Files](https://reference.wolfram.com/language/tutorial/FilesStreamsAndExternalOperations.en.md#36050527)

## Related Guides

* [File Operations](https://reference.wolfram.com/language/guide/FileOperations.en.md)
* [`Files`](https://reference.wolfram.com/language/guide/Files.en.md)
* [String Manipulation](https://reference.wolfram.com/language/guide/StringManipulation.en.md)