首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >读写二进制文件与文本文件

读写二进制文件与文本文件

作者头像
雪飞鸿
发布于 2020-11-03 06:55:49
发布于 2020-11-03 06:55:49
1.3K00
代码可运行
举报
文章被收录于专栏:me的随笔me的随笔
运行总次数:0
代码可运行

文件分类

文件分为两类:二进制文件和文本文件。所有数据在计算机中均以二进制形式存在,这里所说的二进制和文本是以程序解释文件数据的方式来区分的。

二进制文件

二进制文件中通常被看作是一个字节序列,文件中的数据会被应用程序解释为文本字符之外的东西,常见的二进制文件有:pdf、exe、图片等等。

通常,二进制文件会包含一些头信息或者元数据以便于应用程序来解释文件中的数据,具体将数据解释为什么内容还需结合应用程序自身的逻辑,一个字节既可以是字符,也可是音视频。头信息通常包含signature or magic number用来确定文件数据格式。不含有头信息的二进制文件,一般叫做float binary file

在一些场景下,如邮件,无法直接发送二进制数据,这时需要将二进制数据通过Binary-to-text encoding协议转换为文本。

文本文件

相较于二进制文件,文本文件比较简单。通常不会像二进制文件那样含有一些头信息,但在读写文件时需要指明指明所用字符集与编码方式。

操作文件

编程语言对于二进制文件和文本文件的处理会有不同的方式,如,使用参数来区分或者使用不同的方法重载。

JavaScript

参考FileReader

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en"><head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head><body>
    <input type="file" id="file" value="选择文件" />
    <input type="button" value="上传" onclick="getFile()" />
    <script>
        function getFile() {
            let selectedFile = document.getElementById('file').files[0];var reader = new FileReader();
            reader.onload = function () {
                console.log(reader.result);
                let buffer = new Uint8Array(reader.result);
                console.log(buffer);
            };
            // 将文件内容转为字节序列
            reader.readAsArrayBuffer(selectedFile);
            // 以文本形式读取文件
            // reader.readAsText(selectedFile,'utf-8');
        }</script>
</body></html>
Python

参考io模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
import io

current_dir = os.getcwd()

token_file_path = f'{current_dir}/token'

# 读取文本文件需指明编码方式
with open(token_file_path, 'r', encoding='utf8') as file:
    token = file.read()

# 使用二进制方式读写文件
with open(token_file_path, 'rb') as file:
    b_token = file.read()

with open(token_file_path, 'wb') as file:
    file.write(b_token)
    
img_file_path = f'{current_dir}/demo/imgs/js.PNG'
with open(img_file_path, 'rb') as file:
    img_context = file.read()
    img_bytes = bytearray(img_context)
    # list(img_context)
    # print(img_context[0])
    # list(img_bytes)
    # print(img_bytes[0])

with open(f'{current_dir}/demo/src/img_file.png', 'wb') as file:
    file.write(img_context)
C#
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using var fileStream = File.Open(@"C:\Users\WenJun\Desktop\img.PNG", FileMode.Open, FileAccess.Read, FileShare.Read);
// File.OpenText("");
using var streamReader = new StreamReader(fileStream, true);
//using var streamReader = new StreamReader(fileStream, Encoding.UTF8);
//while (streamReader.ReadLine()>0)
//{

//}
var img_str = streamReader.ReadToEnd();

推荐阅读

Binary file

List of file signatures

Text file

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
3-6 读写二进制文件
在前面两节,读写的文件都是针对文本文件。这一节,重点讲述二进制文件的读写。什么是二进制文件呢?
py3study
2020/01/08
1K0
【深入浅出C#】章节 7: 文件和输入输出操作:处理文本和二进制数据
文件和输入输出操作在计算机编程中具有重要性,因为它们涉及数据的持久化存储和交互。数据可以是不同类型的,例如文本、图像、音频、视频和二进制数据。这些不同类型的数据具有不同的存储需求。 文本数据是最常见的数据类型之一,用于存储和传输可读的字符信息。文本文件在配置文件、日志记录和文档中广泛使用。处理文本数据需要关注字符编码和解码,确保数据在不同系统之间正确地传递 二进制数据则是以字节为单位存储的数据,适用于存储非文本数据,如图像、音频和视频。由于这些数据的特殊性,需要特定的读写方式来确保数据的正确性和完整性。 不同类型数据的存储需求不同。文本数据需要考虑字符编码、换行符等。二进制数据需要考虑字节顺序、文件结构等。了解如何处理不同类型的数据能够帮助开发人员有效地进行文件读写和输入输出操作,从而满足应用程序的需求。
喵叔
2023/08/14
1.1K0
☀️ 学会编程入门必备 C# 最基础知识介绍—— C# 高级文件操作(文本文件的读写、二进制文件的读写、Windows 文件系统的操作)
StreamReader 和 StreamWriter 类用于文本文件的数据读写。这些类从抽象基类 Stream 继承,Stream 支持文件流的字节读写。 StreamReader 类 StreamReader 类继承自抽象基类 TextReader,表示阅读器读取一系列字符。
呆呆敲代码的小Y
2021/08/20
1.2K0
☀️ 学会编程入门必备 C# 最基础知识介绍—— C# 高级文件操作(文本文件的读写、二进制文件的读写、Windows 文件系统的操作)
Python实现二进制文件转换为文本文件:方法与应用
在日常编程中,我们经常会遇到需要将二进制文件转换为文本文件的情况。这可能是因为我们需要对文件内容进行分析、编辑或者与其他系统进行交互,而文本文件更易于处理和理解。在Python中,我们可以利用各种库和技术来完成这项任务。本文将介绍如何使用Python将二进制文件转换为文本文件,并提供实用的代码示例。
一键难忘
2024/06/22
9620
Unity 数据读取|(二)多种方式读取文本文件
游戏开发小Y
2024/01/18
1.6K0
C/C++读写文本文件、二进制文件「建议收藏」
1. C语言读写文件均通过FILE指针执行操作,其中文本文件的读写用fprintf,fscanf,二进制文件的读写用fread,fwrite
全栈程序员站长
2022/09/05
2.7K0
C++ 读写文本文件和二进制文件
在 C 中,我们通过 FILE 结构体生成的指向 FILE 结构体的指针来操作文件。其提供了诸如 fgetc、fgets、feof等等函数,在 C++ 中重新封装了操作文件的方法,其实现在 iostream 派生的 fstream 中,实际内部实现基本原理与 C 相同。下面就分别介绍下操作文本文件和二进制文件的方法。
我与梦想有个约会
2023/10/20
3040
Python文本文件和二进制文件的只读和只写操作
Python能对文本文件(txt,doc,html,xml...)和二进制文件(图片,视频,音频...)进行只读和只写操作,下面就分为两个方面来讲解一下。
python自学网
2021/12/07
1.2K0
Python文本文件和二进制文件的只读和只写操作
C++文件读写操作分析文本文件与二进制文件
ios::app 与 ios::ate 的区别主要在多线程写文件时有区别,ios::app:第一个线程(进程)往里面写了个d,第二个线程(进程)写了个e的话,结果是abcde
CtrlX
2022/09/23
6840
【深入浅出C#】章节 7: 文件和输入输出操作:文件读写和流操作
文件读写在计算机编程中起着至关重要的作用,它允许程序通过读取和写入文件来持久化数据,实现数据的长期保存和共享。文件读写是许多应用程序的核心功能之一,无论是创建文本文件、二进制文件,还是处理配置文件、日志文件或数据库文件,文件读写都是不可或缺的部分。 文件读写的基本概念是通过输入和输出操作来与计算机上的文件进行交互。读取文件允许程序从文件中获取数据,以供后续处理和分析;而写入文件则允许程序将数据存储到文件中,以备后续使用或共享给其他应用程序。通过文件读写,程序可以在不同的运行实例之间共享数据,也可以实现数据的持久化,使得数据在程序关闭后仍能保留。 文件读写的用途广泛,包括但不限于:
喵叔
2023/07/25
3.3K0
【C语言加油站】你知道什么是文本文件什么是二进制文件吗?
这里我们可以简单的理解为:除了1,2,3,4……这些整数以及1.1,3.14,0.02……这些浮点数外,其它的数据均为字符。
蒙奇D索隆
2025/01/02
1580
【C语言加油站】你知道什么是文本文件什么是二进制文件吗?
读写二进制文件
知道了如何读写文本文件要读写二进制文件也就很简单了,下面的代码实现了复制图片文件的功能。
用户8442333
2021/05/19
2.9K0
聊聊JS的二进制家族:Blob、ArrayBuffer和Buffer
事实上,前端很少涉及对二进制数据的处理,但即便如此,我们偶尔总能在角落里看见它们的身影。
啦啦啦321
2019/12/19
8.2K0
从零开始学C++之IO流类库(三):文件的读写、二进制文件的读写、文件随机读写
文章主要讲述了C++流和文件操作的相关内容。包括标准I/O流、自定义I/O流、文件操作、文件的随机读写以及文件指针的移动。
s1mba
2017/12/28
3.3K0
PySpark分析二进制文件
客户需求 客户希望通过spark来分析二进制文件中0和1的数量以及占比。如果要分析的是目录,则针对目录下的每个文件单独进行分析。分析后的结果保存与被分析文件同名的日志文件中,内容包括0和1字符的数量与占比。 要求:如果值换算为二进制不足八位,则需要在左侧填充0。 可以在linux下查看二进制文件的内容。命令: xxd –b –c 1 filename 命令参数-c 1是显示1列1个字符,-b是显示二进制。 遇到的坑 开发环境的问题 要在spark下使用python,需要事先使用pip安装pyspark。
张逸
2018/03/07
1.9K0
python 二进制文件的读写
file.seek()方法标准格式是:seek(offset,whence=0) offset:开始的偏移量,也就是代表需要移动偏移的字节数 whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。默认为0
py3study
2020/01/10
1.7K0
路径,文件,目录,I/O常见操作汇总
摘要:   文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时运维
Java架构师必看
2021/03/22
1.7K0
C#读写文本文件代码片段
读取文本文件代码片段 using System; using System.IO; public class TestReadFile { public static void Main(String[] args) { // Read text file C:\temp\test.txt FileStream fs = new FileStream(@c:\temp\test.txt , FileMode.Open, FileAccess.Re
用户8671053
2021/11/02
4720
C#二进制流的序列化和反序列化
彭泽0902
2018/01/04
1.8K0
git 操作二进制文件
平常用git进行项目管理已经稀松平常了, 今天咱来点不一样的. 平常管理的都是普通的文本文件, 如果是二进制文件, git能够处理么? 比如word文档. 测试一下. 新建一个项目, 在其中创建tes
烟草的香味
2021/06/29
1.3K0
推荐阅读
相关推荐
3-6 读写二进制文件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档