文件模式

文件模式

文件 I/O 操作将在文本或二进制这两种转换模式之一中进行,具体取决于文件时在哪种模式下打开的。数据文件通常在文本模式下处理,这可以给我们提供一下便利的操作。

二进制模式与文本模式

物理上计算机上所有的文件都是以二进制方式存储的。如果我们知道文件是一个文本,我们可以使用文本模式读写文件。文本模式下,我们可以以行为单位读取写入,不然我们需要手动去处理换行符。

在二进制模式下换行符会作为一个字节,文本模式下读取时会忽略换行符。

文本文件,操作系统会对’\n’进行一些隐式变换,因此文本文件直接跨平台使用会出问题。

  • 在Windows下,写入\n时,操作系统会隐式的将\n转换为\r\n,再写入到文件中;读的时候,会把\r\n隐式转化为\n,再读到变量中。
  • 在Linux下,写入\n时,操作系统不做隐式变换。

二进制文件,操作系统不会对’\n’进行隐式变换,很多二进制文件(如电影、图片等)可以跨平台使用。如果我们使用文本模式先读后写二进制文件可能照成文件损坏。

例如我们读取一张图片,如果是文本模式(readLine)就会直到遇到\n这个字符一次读取才结束。但是,实际上\n这个字符不像在文本中具有特殊意义,这种读取方式是毫无意义的。

参考

本站采用「署名 4.0 国际」进行许可。