Julia文件读写函数:write和read

编程入门 行业动态 更新时间:2024-10-12 12:33:24

Julia文件读写<a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数:write和read"/>

Julia文件读写函数:write和read

文章目录

    • 初步认识
    • 函数详解
    • read!

初步认识

Julia提供了异常便捷的文件读写函数,read和write,例如,下面的代码用write将字符串写入到tiny.txt文件中,然后用read将tiny.txt的内容以字符串的形式读取到变量a中,然后输出a,其内容正是我们写入的tiny cool。

> write("tiny.txt", "tiny cool");
> a = read("tiny.txt", String);
> a
"tiny cool"

write还支持多组数据写入,所以下面的语句也是合法的,其写入的文件内容为tinycool。

> write("tiny.txt", "tiny", "cool");

函数详解

Julia对这两个函数提供了多种重载方法,首先这两个函数的第一个参数,既可以是字符串表示的路径,也可以是IO或者IOStream类型。而write的第二个参数,就是想要写入的数据,Julia会自动识别数据类型,如果是字符串就存为文本格式,否则一般是按照二进制形式存储。

read相对来说稍显复杂,其第二个参数有下面几种情况:

  • 数据类型,例如上面示例中,把tiny.txt这个文件读取为String格式
  • 缺省,表示以二进制形式读取数据
  • 整数nb,表示读取nb个字节的数据

IO类型,即输入输出类型,是Julia中的一种数据结构,例如例如stdout表示标准输出,stdin表示标准输入,read可以从标准输入读取数据,而write可以将数据写入标准输出,效果如下

> write(stdout, "hello world")
hello world
> a = read(stdin, Char)
x
> a
'x': ASCII/Unicode U+0078 (category Ll: Letter, lowercase)

其中x是手动输入的,需要注意,如果想从标准输入读取数据,那么数据类型不能是字符串,因为字符串是无限长的,会陷入死循环。

read!

在Julia中,普通函数并不会改变输入参数的值,所以read函数只能把读取到的数据作为返回值,传给另一个参数。但返回值的数据类型往往不确定,所以必须要添加一个数据类型参数,相对来说比较繁琐。

相比之下,read!有了!的加持,就可以实现对输入参数的更改,从而可以直接将文件内容写入数组

> write("a.bin", ones(Int, 5, 5));
> x = zeros(UInt8, 8);
> read!("a.bin", x);
> x
8-element Vector{UInt8}:0x010x000x000x000x000x000x000x00

其中,write把64位整形 5 × 5 5\times5 5×5的矩阵写入a.bin文件。

然后把x定义为8位无符号整型的数组,其长度为8。

接下来通过read!函数,将a.bin文件中的内容写入x,由于x的数据类型是8位无符号整型,所以64位整型的1在读取之后,被拆分成8个UInt8数据,出了第一个是1之外,剩下都是0。

更多推荐

Julia文件读写函数:write和read

本文发布于:2023-11-16 13:13:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1623619.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   文件   Julia   write   read

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!