read an entire compressed file - Maple Help

Home : Support : Online Help : Programming : Input and Output : File Manipulation : FileTools : FileTools/Compressed/ReadFile

Parameters

 filename - string or string:string outputtype - (optional) either string, ByteArray, or 'Array'(m,n,hwdatatype) opts - (optional) options as specified below

Description

 • ReadFile is an all-in-one command to open a file, read and decompress its data, and close the file.
 • If the given file is in zip format, and an in-zip name is not specified (using inzipname in zipfilename), then the first member of the zip archive is read.
 • If the second parameter, outputtype, is string then the contents of the file are returned as a string.
 • If the outputtype is not specified and the in-zip file name ends in ".m", then the contents of the zip file will be parsed as if they were in Maple's internal object format.
 • If the outputtype is not specified and the in-zip file name ends in ".mpl", then the contents of the zip file will be parsed as if they were a single Maple-syntax text command.
 • If outputtype is Array, then m and n are integers specifying the dimensions of the Array.  The dimensions are optional, and one or more can be set.  The hwdatatype indicates one of the integer[], float[], or complex[] datatype variations accepted by the 'datatype' option of the Array command.
 • If outputtype is set to bytes or does not match any of the above criteria then an Array of datatype integer[1] is returned.

Examples

Read from a file in gzip format.

 > file := FileTools[TemporaryFilename](cat(FileTools[TemporaryDirectory](),kernelopts(dirsep),"GZtest-"));
 ${\mathrm{file}}{:=}{"/mnt/tmpfs/mpldoc_slot1/mpldoc1/GZtest-yYoYxV9R"}$ (1)
 > FileTools[Compressed][WriteFile](file, "This is a test");
 ${14}$ (2)
 ${"This is a test"}$ (3)
 > FileTools[Compressed][WriteFile](file, Array(1..50, 0, datatype=integer[1]));
 ${50}$ (4)
 $\left[\begin{array}{c}{\mathrm{1 .. 50}}{\mathrm{Array}}\\ {\mathrm{Data Type:}}{{\mathrm{integer}}}_{{1}}\\ {\mathrm{Storage:}}{\mathrm{rectangular}}\\ {\mathrm{Order:}}{\mathrm{Fortran_order}}\end{array}\right]$ (5)
 > FileTools[Remove](file);

Read from a file in zip format.

 > zipfile := FileTools[TemporaryFilename](cat(FileTools[TemporaryDirectory](),kernelopts(dirsep),"GZtest-"),".zip");
 ${\mathrm{zipfile}}{:=}{"/mnt/tmpfs/mpldoc_slot1/mpldoc1/GZtest-bx70dpPu.zip"}$ (6)
 > FileTools[Compressed][WriteFile]("first" in zipfile, "one");
 ${3}$ (7)
 > FileTools[Compressed][WriteFile]("second" in zipfile, Array(1..50, 0, datatype=integer[1]));
 ${50}$ (8)
 > FileTools[Compressed][Contents](zipfile);
 $\left[{"first"}{,}{"second"}\right]$ (9)
 ${"one"}$ (10)
 $\left[\begin{array}{c}{\mathrm{1 .. 50}}{\mathrm{Array}}\\ {\mathrm{Data Type:}}{{\mathrm{integer}}}_{{1}}\\ {\mathrm{Storage:}}{\mathrm{rectangular}}\\ {\mathrm{Order:}}{\mathrm{Fortran_order}}\end{array}\right]$ (11)