首页 > 其他分享 >文件操作相关

文件操作相关

时间:2022-11-09 23:34:28浏览次数:31  
标签:文件 字节 编码 模式 字符 缓冲区 相关 操作

打开模式 

w   write 写入模式      

文件不存在则创建文件,存在的话则打开清空内容,并且将文件指针放在文件的开头


r   read  读取模式

文件不存在则报错! 存在的话则打开文件,并且将文件指针放在文件的开头


a   append 追加模式

文件不存在则创建文件,存在的话则打开文件,*并且将文件指针放在文件的末尾*


x   xor 异或模式

文件已存在则报错! 不存在的话则创建文件,将文件指针放在文件的开头


#扩展模式 (配合打开模式的辅助模式,自己单独不能使用)

   +   plus   增强模式(可以让文件具有读写功能)        

   b   bytes  bytes模式(二进制字节流)


#模式一共16种

   w,w+,wb,wb+

   r,r+,rb,rb+

   a,a+,ab,ab+

   x,x+,xb,xb+  

# 将字符串和字节流(Bytes流)类型进行转换 (参数写成转化的字符编码格式)

   #encode() 编码  将字符串转化为字节流(Bytes流)

   #decode() 解码  将Bytes流转化为字符串


# (utf-8编码格式下 默认一个中文三个字节 一个英文或符号 占用一个字节)

    read()  功能: 读取字符的个数(里面的参数代表字符个数)

    seek()  功能: 调整指针的位置(里面的参数代表字节个数)

    tell()  功能: 当前光标左侧所有的字节数(返回字节数)


# 刷新缓冲区 flush

     当文件关闭的时候自动刷新缓冲区

     当整个程序运行结束的时候自动刷新缓冲区

     当缓冲区写满了  会自动刷新缓冲区

     手动刷新缓冲区


with 语法 自动关闭文件 相当于帮你执行了fp.close()

文件相关函数

#readline()     功能: 读取一行文件内容

#readlines()    功能:将文件中的内容按照换行读取到列表当中

#writelines()   功能:将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据

#truncate()     功能: 把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中 (字节)

#readable()     功能: 判断文件对象是否可读

#writable()     功能: 判断文件对象是否可写

字符相关的(了解)

#字符:无论是什么语言,独立的一个文字就是一个字符

#存储单位:

   Byte字节

   bit:位  

   1B = 8b

   B:字节, 1Byte = 8bit

   

#字符大小:

   无论何种字符集:英文和数字都是一个字节,汉字,韩文,日文等亚洲文字采用多个字节存储

   GB系列编码:存储一个汉字使用2个字节 (国标编码:例如: gbk2312 )

   UTF系列编码:存储一个汉字使用3个字节(国际通用:例如: utf-8 )


#字符编码种类: (把编码看成一个密码本,每一个字符在计算机中都是个二进制)

   英文原始编码:

   ASCII码 -> 最早的字符编码格式->仅支持英文和特定的符号

   

   中文编码:

   GB2312 : 包含5000个常用汉字的标准

   GB18030: 升级版本的标准,大概15000个汉字

   GBK    : 包含所有中文汉字的编码(推荐)

   BIG5   : 繁体中文编码        

   

   万国码:

   unicode 包含世界上所有的文字(无论什么字符 都按照4个字节表示)

   utf-8   可变长的unicode编码





标签:文件,字节,编码,模式,字符,缓冲区,相关,操作
From: https://blog.51cto.com/u_15222272/5838981

相关文章

  • 文件操作相关
    打开模式 w write写入模式    文件不存在则创建文件,存在的话则打开清空内容,并且将文件指针放在文件的开头r read 读取模式 文件不存在则报错!存在的......
  • 根据包名查找 Jar 包文件
    很多时候,我们需要根据包名来查找一些依赖所在的jar包,比如我们想要查找​​com.alipay​​这个包及其文件所在的jar包。最笨拙的办法可能是这样一个一个jar包查找,再利用一些......
  • c++ 函数-遍历文件夹
    #pragmaonce#include<iostream>#include<string.h>#include<unistd.h>#include<sys/io.h>#include<sys/types.h>#include<sys/stat.h>#include"dirent.h"......
  • [Bug0049]SwitchHosts报错:没有写入 Hosts 文件的权限
    问题SwitchHosts报错:没有写入Hosts文件的权限解决方案1、打开如下目录C:\Windows\System32\drivers\etc2、右键hosts文件->点击安全->点击编辑->找到User......
  • Linux驱动面试相关
    1.linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些? Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000-0xFFFFFFFF),供内核使用......
  • golang连接MySQL并导入执行SQL文件
    实现golang连接MySQL数据库导入执行一个sql文件packagetoolsimport("fmt"_"github.com/go-sql-driver/mysql""github.com/jinzhu/gorm""io/iou......
  • DHCP 的相关概念
    1、DHCP(动态主机配置协议)----------->为TCP/IP网络分配TCP/IP参数(IP、NetMask、GateWay、DNS)2、DHCP的优点:    减少管理员的工作量    避免输入......
  • Spring Boot:文件下载
    测试代码​​pom.xml​​:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst......
  • C++中如何实现创建文件夹
    C++中如何实现创建文件夹:使用system()调用dos命令#include<iostream>usingnamespacestd;intmain(){stringfolderPath="E:\\database\\testFolder";......
  • 从键盘输入数值,构成一个3行4列的二维整型数组,对每个元素执行加 k 操作,然后输出该数组
    输入:第一行输入整数k(k>0,k<100)从第二行开始输入3行4列的二维数组。输出:按行列形式输出操作后的数组。#include<stdio.h>main(){inta[3][4],i,j,k;sca......