Files and Streams

File Names

name.mWolfram Language source file
name.nbWolfram System notebook file
name.maWolfram System notebook file from before Version 3
name.mxWolfram Language expression dump
name.exeWSTP executable program
name.tmWSTP template file
name.mlWSTP stream file

Conventions for file names.

Most files used by the Wolfram System are completely system independent. .mx and .exe files are however system dependent. For these files, there is a convention that bundles of versions for different computer systems have names with forms such as name/$SystemID/name.

In general, when you refer to a file, the Wolfram System tries to resolve its name as follows:

  • If the name starts with !, the Wolfram Language treats the remainder of the name as an external command, and uses a pipe to this command.
  • If the name starts with http:// or https:// the Wolfram Language treats the name as a URL and reads the file from a web server.
  • If the name is handled by a registered stream method, the method will open the stream using the name.
  • If the name contains metacharacters used by your operating system, then the Wolfram Language passes the name directly to the operating system for interpretation.
  • Unless the file is to be used for input, no further processing on the name is done.
  • Unless the name given is an absolute file name under your operating system, the Wolfram Language will search each of the directories specified in the list $Path.
  • If what is found is a directory rather than a file, then the Wolfram Language will look for a file name/$SystemID/name.

For names of the form name` the following further translations are done in Get and related functions:

  • A file is used if it exists.
  • If is a directory, then$SystemID/ is used if it exists.
  • A file name.m is used if it exists.
  • If name is a directory, then the file name/init.m is used if it exists.

In Install, name` is taken to refer to a file or directory named name.exe.


InputStream["name",n]input from a file or pipe
OutputStream["name",n]output to a file or pipe

Types of streams.

option name
default value
CharacterEncodingAutomaticencoding to use for special characters
BinaryFormatFalsewhether to treat the file as being in binary format
FormatTypeInputFormdefault format for expressions
PageWidth78number of characters per line
TotalWidthInfinitymaximum number of characters in a single expression

Options for output streams.

You can test options for streams using Options, and reset them using SetOptions.