Java教程

文件处理:open()

本文主要是介绍文件处理:open(),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 为什么要学文件处理?

我们想把内存上面的数据存到硬盘中去;在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)

2. 如何用文件:open()

控制文件读写内容的模式有两种:t和b

(1)t是python3默认的模式:
t模式一般用于读写文本文件;进入内存以Unicode形式
特点是python3中的字符串读写进入内存都是以unicode为单位的,而unicode模式无法直接存在硬盘中去,因此,必须指定一个写入编码格式;必须为open()指定一个参数指定一个编码,encoding='utf-8';
image.png

(2)b模式一般用于二进制文件

a = f.read()底层做了一件什么事?
首先f文件对象将硬盘读取出来,然后赋值给了a,相当于读取出来的内容写入了内存;
如果我们不指定encoding去调用read方法,会出现报错,因为文件对象默认以unicode进行读取,而我们的文件是utf8格式,当初存是什么格式,就以什么格式去读,因此需要指定utf8

(3)with上下文管理器
可读多个文件
image.png

硬盘文件与内存是如何转换的?
计算机设备之间差异很大,所以操作系统需要提供一组功能以便于应用程序控制这些设备,但是现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。

由于文件是一个接口,用于与底层进行交互,实际上文件里面存储的都是二进制,二进制又分为了各种格式(gbk,utf8等),
我们在打开文件的时候,实际上,是cpu控制内存读取硬盘操作,内存对照Unicode字符表,将文件中的二进制文件转换成对应的字符串,在转换过程中,需要

这篇关于文件处理:open()的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!