此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

Read

Usage

Read[stream] 从一个输入流读出表达式,并返回该表达式.
Read[stream, type] 读指定类型的对象.
Read[stream,   ,  , ...  ] 读指定类型的一列对象.


Notes

• 可以读的类型:
"\!\(\*StyleBox[\"\\\"Byte\\\"\", \"MR\"]\) "单字节,以一个整数编码返回
"\!\(\*StyleBox[\"\\\"Character\\\"\", \"MR\"]\) "单字符,以一个由单字符组成的字符串返回
"\!\(\*StyleBox[\"\\\"Expression\\\"\", \"MR\"]\) "完整的Mathematica表达式
"\!\(\*StyleBox[\"\\\"Number\\\"\", \"MR\"]\) "整数或近似数,以 E 格式给出
"\!\(\*StyleBox[\"\\\"Real\\\"\", \"MR\"]\) "近似数,以E格式给出
"\!\(\*StyleBox[\"\\\"Record\\\"\", \"MR\"]\) ""使用记录分隔符分隔的字符序列"
"\!\(\*StyleBox[\"\\\"String\\\"\", \"MR\"]\) "以换行符结束的字符串
"\!\(\*StyleBox[\"\\\"Word\\\"\", \"MR\"]\) """使用字分隔符分隔的字符序列
Real类型的对象可以用诸如C和Fortran语言所使用的科学记数法同标准的Mathematica格式一样给出.2.e52E5,同2*^5一样能够用来表示  . 以Real类型读出的对象总以近似数返回.以Real类型读出的对象若不明显包含小数点则以整数返回.
• 可以使用的可选项:
"\!\(\*StyleBox[\"\\\"NullRecords\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"False\\\"\", \"MR\"]\) "是否假定在重复的记录分隔符之间存在一个空记录
"\!\(\*StyleBox[\"\\\"NullWords\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"False\\\"\", \"MR\"]\) ""whether to assume a null word between repeated word separators " 是否假定在重复的字分隔符之间存在一个空字
"\!\(\*StyleBox[\"\\\"RecordSeparators\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"{\\\\\\\"\n\\\\\\\"}\\\"\", \"MR\"]\) """记录之间所允许的分隔符
"\!\(\*StyleBox[\"\\\"TokenWords\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"{}\\\"\", \"MR\"]\) """被用作分隔符的字
"\!\(\*StyleBox[\"\\\"WordSeparators\\\"\", \"MR\"]\) ""\!\(\*StyleBox[\"\\\"{\\\\\\\"\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"\\\\\\\",\\\"\", \"MR\"]\) \!\(\*StyleBox[\"\\\"\\\\\\\"\t\\\\\\\"}\\\"\", \"MR\"]\) """字之间所允许的分隔符
String类型的对象必须以换行符("\n"字符)结束.
• 你可以为Read指定要查找的嵌套类型列表.每个所读的连续对象被放在列表结构中的相邻位置.搜索列表结构时使用深度优搜索方式.
• 例如: Read[stream,  Number, Number ] 从输入流读出一对数, 并给出一个有两个元素的列表.
Read[stream,   Number, Number ,  Number, Number  ] 读出一个  的矩阵, 先读每一行, 然后读每一列.
• 你可以使用 Read 来获得对象并插入任何表达式结构(不必是一个列表)中. 例如: Read[stream, Hold[Expression]] 获得一个表达式并把它放在Hold中.
Read 的第一个参数可以是 InputStream["name", n], 或就仅为"name",如果只存在一个打开的具有指定名称的输入流, .
• 可以使用OpenRead来打开一个文件或管道以获得一个InputStream对象.
• 对任何流来说,总存在一个"当前位置". 当你从一个流读出一个对象时,当前位置放在你读的输入之后. 因此对Read的连续调用可以用来读取文件之类的流中的连续对象.
• 当你到达文件末尾后,对每个试图读出的对象Read返回EndOfFile.
• 如果无法读取你所要求类型的对象,Read返回$Failed.
• 如果在你试图读取的Mathematica表达式中存在一个语法错误,Read会把当前位置放在出错的地方,并返回$Failed.
• 参见 Mathematica 全书: 2.11.8节.
• 同时参见: Input, Get, Skip, Find, StringToStream, LinkRead, Import.