首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【C 语言】文件操作 ( 读文本文件 | 文本加密解密 | fgets 函数 | fputs 函数 )

文章目录 一、从文件中读取多行文本 二、文本文件加密 三、文本文件解密 一、从文件中读取多行文本 ---- 首先 , 以读的方式打开文件 ; // 打开一个文件 , 以读的方式...调用 fgets 方法 , 从文件中读取数据 ; char *fgets(char *str, int n, FILE *stream) char *str 参数 : 将文件中的文本读取到哪里去 ; int...n 参数 : 读取多少数据 , 单位字节 ; FILE *stream 参数 : 读取哪个文件中的数据 ; 多行文本读取 : 通过 feop 函数判定是否读取到了文件结尾 , 如果已经读取到了文件结尾...; return 0; } 执行结果 : 二、文本文件加密 ---- 打开两个文件 , 从一个文件中读取文本 , 进行加密 , 然后再写出到另一个文件中 ; 以读的方式打开文件 : // 打开一个文件...XpsmeDTEOHjuivc 三、文本文件解密 ---- 打开两个文件 , 从一个文件中读取文本 , 进行解密 , 然后再写出到另一个文件中 ; #include void encode

1.4K20

Java进阶-IO(1)

流是一组有序的数据序列(以输入流的形式获取,输出流的形式输出),将数据从一个地方带到另一个地方。...(可类比水管里水的流动) 输入:将数据从各种输入设备(包括文件、键盘等)中读取到内存中 输出:将数据写入到各种输出设备(比如文件、显示器、磁盘等) 流相关的类都封装在 java.io 包中,且每个数据流都是一个对象...指定的字节数组中,其中 off 是指在数组中开始保存数据位置的起始下标,len 是指读取字节的位数。...readLimit 指定可以设置标记的字节数 reset():使输入流重新定位到刚才被标记的位置,这样可以重新读取标记过的数据 两点注意: 最后 3 个方法一般结合使用,先用 markSupported...需求:把文本文件的内容从一个文件中读取出来(数据源),然后写入到另一个文件中(目的地) import java.io.FileInputStream; import java.io.FileOutputStream

17421
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言实现读取文件的简单代码「建议收藏」

    ,只允许读数据 wt 只写打开或建立一个文本文件,只允许写数据 at 追加打开一个文本文件,并在文件末尾写数据 rb 只读打开一个二进制文件,只允许读数据 wb 只写打开或建立一个二进制文件,只允许写数据...ab 追加打开一个二进制文件,并在文件末尾写数据 rt+ 读写打开一个文本文件,允许读和写 wt+ 读写打开或建立一个文本文件,允许读写 at+ 读写打开一个文本文件,允许读,或在文件末追加数据 rb...+ 读写打开一个二进制文件,允许读和写 wb+ 读写打开或建立一个二进制文件,允许读和写 ab+ 读写打开一个二进制文件,允许读,或在文件末追加数据 (1)文件使用方式由r、w、a、t、b 和 + 六个字符拼成...(4) 若要向一个已存在的文件追加新的信息,只能用“a”方式打开文件。但此时该文件必须是存在的,否则将会出错。 (5)在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。...size_t fread( void *buffer, //数据的存储位置 size_t size, //项目大小(以字节为单位) size_t count, //读取的最大项目数

    2.7K30

    Java IO流框架图

    Java IO流框架图 摘要: Java的I/O流框架是一套用于数据输入和输出的类和接口,提供了灵活、高效的方法来处理文件和其他数据源。...无论是读取文本文件、二进制文件,还是进行网络通信,Java I/O流框架为开发人员提供了丰富的工具和方法,使数据输入和输出变得更加简单和高效。...引言: 在Java编程中,I/O(输入/输出)操作是不可避免的。它涉及将数据从一个地方读取到另一个地方,如文件、网络连接等。Java提供了强大的I/O流框架,用于管理数据流动和处理。...创建节点流(字节流) 创建桥转换流,同时设置编码方式 包装过滤流 读/写操作 关闭流(只需要关闭最后层的流) 总结: Java I/O流框架是一组用于处理数据输入和输出的类和接口的集合。...DataInputStream和DataOutputStream: 用于读写基本数据类型(如int、double)的流,提供了更高级的数据处理功能。

    13010

    java NIO浅析

    传统IO基于字节流和字符流进行操作,而NIO基于Channel和Buffer进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。...Java IO面向流意味着每次只能从流中读取一个或多个字节,直到读取完所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。...NIO的缓冲区导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,而且,需确保当更多的数据读入缓冲区时,不能覆盖掉缓冲区尚未处理的数据。...该线程在此期间不能再干任何事了,NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取,而是保持线程阻塞,所以直至数据变到可以读取之前...注意:读的时候不能写,写的时候不能读,如果需要必须切换状态 FileChannel:从文件中读写数据。非异步,阻塞 DatagramChannel:能通过UDP读写网络中的数据。

    69520

    java nio 详_java NIO 详解

    Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。...Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动。这就增加了处理过程中的灵活性。但是,还需要检查是否该缓冲区中包含所有您需要处理的数据。...Java NIO的非阻塞模式,使一个线程从某通道发送请求读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取。...当读取数据时,也是从某个特定位置读。当将Buffer从写模式切换到读模式,position会被重置为0。当从Buffer的position处读取数据时,position向前移动到下一个可读的位置。...5.1 Scattering Reads Scattering Reads是指数据从一个channel读取到多个buffer中。

    72520

    【c语言】巨巨巨详细!—— 文件操作(笔记整理)

    第二段代码中,通过while循环将读取到“鼠标光标”指向数据末尾,也就是读完了。...  如6中的打印结构体内容 这里我个人理解为,其与printf的区别就是多了个需要笔的工具,这里的笔用stdout代替。...使文件指针读取指定我们想要读写的位置 假定我们要读这个数 实操分析:   完整代码如下: ​ int main() { //打开文件 FILE* pf = fopen("test.txt...", "w"); if (pf == NULL) { perror("fopen"); return 1; } //运用fseek函数读文件中第五个元素的数据 //我们指定初始位置、当前文件指针所处位置...、末尾位置三个不同的角度来指定位置同个数据的读取 //从头开始读取向后4个偏移量的位置的数据 fseek(pf,4,SEEK_SET); //打印字符看看是否读取成功 int ch = fgetc

    16310

    别大意,你可能还没掌握好Java IO

    FilterInputStream InputStream 作为字节输入流,那么读取的数据理应用字节数组接收,如下: ? 我们得借助一个 byte 数组来接收读取到值,然后转为字符串类型。...代表"缓冲区" 其中DataInputStream允许我们读取不同的基本数据类型数据以及String对象,搭配相应的DataOutputStream,我们就可以通过数据"流" 将基本类型的数据从一个地方迁移到另一个地方...因此这种从直接内存中读取数据的方式要比每次都访问磁盘的效率高很多。 ?...getNextEntry() ZipEntry 读取下一个ZipEntry,并将流内的位置移至该 entry 所指数据的开头 createZipEntry(String name) ZipEntry...取到每一个文件后,通过 ZipFile获取输出流,然后写入到解压后的文件中。大致流程如下: ?

    45110

    C语言入门系列之11.文件和文件操作

    文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。 操作系统是以文件为单位对数据进行管理的,示意如下: ?...我们使fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。 如果有n个文件,一般应设n个指针变量,使它们分别指向n个文件,以实现对文件的访问。...ab (追加)向二进制文件尾增加数据 r+ (读写)为读/写打开一个文本文件 w+ (读写)为读/写建立一个新的文本文件 a+ (读写)为读/写打开一个文本文件 rb+ wb+ (读写)为读/写建立一个新的二进制文件...fgetc()函数调用: ch = fgetc(fp); 函数功能: 其意义是从打开的文件fp中读取一个字符并传入ch中。 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。...() 把字符串输出到指定文件 getw() 从指定文件读取一个字(int型) putw() 把一个字输出到指定文件 fread() 从指定文件中读取数据项 fwrite() 把数据项写到指定文件中 fscanf

    1.5K10

    C语言文件操作

    其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使用,这里处理的就是磁盘上文件。 2.3 文件名 一个文件要有一个唯一的文件标识,以便用户识别和引用。...文件的打开和关闭 3.1 文件指针 缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针” 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等...第一个是文件变量,意思是从这个文件中读取或写入这个文件。第二个是读的数据的大小,字节。第三个是每次读取或写入多少个,按照类型来定,比如结构体类型,每次写入多少个结构体的内容,写一个就1,两个就2。...sscanf :从一个字符串中转化成一个格式化的数据   sprintf 是把一个格式化的数据转化成字符串 5. ... ftell 返回文件指针相对于起始位置的偏移量 5.3 rewind 让文件指针的位置回到文件的起始位置 6.文本文件和二进制文件 根据数据的组织形式,数据文件被称为文本文件或者二进制文件。

    4K20

    Spring之事务

    ,就像这个事务从来没有执行过一样 C:一致性(Consistency) 一个事务必须使数据库从一个一致性状态变换到另一个一致性状态 如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态...由并发事务所做的修改必须与任何其他并发事务所做的修改隔离 事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据 D:持久性(Durability...,使它们不会相互影响,避免各种并发问题 一个事务与其他事务隔离的程度称为隔离级别 SQL标准中规定了多种事务隔离级别,不同隔离级别对应不同的干扰程度,隔离级别越高,数据一致性就越好,但并发性越弱 隔离级别一共有四种...可以多次从一个字段中读取到相同的值 即使Transaction01执行期间其它事务对这个字段进行更新,Transaction01读到也没有变化 串行化:SERIALIZABLE(serializable...) 确保Transaction01可以多次从一个表中读取到相同的行,在Transaction01执行期间,禁止其它事务对这个表进行添加、更新、删除操作 可以避免任何并发问题,但性能十分低下 各个隔离级别解决并发问题的能力见下表

    8810

    C语言:文件操作详解

    但是这样的方式显然不能达到永久保存数据的目的,所以我们需要把信息输出到磁盘的文件中,当我们需要的时候再通过磁盘中的文件将数据读取到内存中去使用!...,即找到这个文件,右击属性,就可以找到他的位置 三、二进制文件和文本文件       根据数据的组织形式,数据文件又被区分为文本文件和二进制文件。      ...每一个被使用的文件都在内存中开辟了一个相应的文件区,专门用来存放文件的相关信息(如⽂件的名字,⽂件状态及⽂件当前的位置等)。这些信息是保存在⼀个结构体变量中的。...,从键盘上读取,而fscanf是所有的标准输入流都可以,参数可以传文件流也可以跟scanf一样传stdin(标准输入流),而sscanf是从一个字符串中读取。...sscanf:从一个字符串中读取格式化的数据 sprintf:把一个格式化的数据转换成字符串 七、文件的随机读写       顺序读写,顾名思义就是按顺序读写,本质是根据光标的移动按顺序读写,而光标最开始就是在文件的最前面

    56610

    C语言进阶(十四) - 文件管理

    文件打开模式一览表 ** 文件打开方式** **含义 ** 所打开的文件不存在 “r”(只读) 为了输入数据,以文本文件的形式打开一个文件,该文件必须存在 出错 “w”(只写) 为了输出文件,新建一个空内容文件...新建一个空文件 “ab"或"a+b”(追加) 以二进制的形式打开一个文件,向二进制文件尾输入数据 出错 “r+”(读写) 为了读和写,以文本文件形式打开一个文件进行,该文件必须存在 出错 “w+”(读写...) 为了读和写,以文本文件的形式新建一个空内容文件。...,该文件必须存在 出错 “wb+”(读写) 为了读和写,以二进制文件的形式新建一个空内容文件。...**如果从磁盘向计算机读入数据,则从磁盘文件读取数据输入到内存缓冲区,充满缓冲区或强制刷新如(fflush()函数)缓冲区时,会从缓冲区逐个将数据送到程序数据区(如程序变量等)。

    99710

    NIO之FileChannel解读

    从 FileChannel 中读取的数据将被读到 Buffer 中。然后,调 用 FileChannel.read()方法。该方法将数据从 FileChannel 读取到 Buffer 中。...如: inChannel.close(); FileChannel 的 position 方法  有时可能需要在 FileChannel 的某个特定位置进行数据的读/写操作。...这里有两个例子: long pos = channel.position(); channel.position(pos +123);  如果将位置设置在文件结束符之后,然后试图从文件通道中读取数据,读方法将返回...Scattering Reads Scattering Reads 是指数据从一个 channel 读取到多个 buffer 中。...read()方法按照 buffer 在数组中的顺序将从 channel 中读取的数据写入到 buffer,当 一个 buffer 被写满后,channel 紧接着向另一个 buffer 中写。

    29730

    C语言重点突破(六)文件操作

    这些文件可以在不同的编程语言中编写,如C++、Java、Python等。包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境,后缀为.exe)。...每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。...文件使用方式 含义 如果指定文件不存在 “r”(只读) 为了输入数据,打开一个已经存在的文本文件 出错 “w”(只写) 为了输出数据,打开一个文本文件 建立一个新的文件 “a”(追加) 向文本文件尾添加数据...r+”(读写) 为了读和写,打开一个文本文件 出错 “w+”(读写) 为了读和写,建议一个新的文件 建立一个新的文件 “a+”(读写) 打开一个文件,在文件尾进行读写 建立一个新的文件 “rb+”(读写...顺序读取:从文件开头开始依次读取每个字节或块,直到读取到文件的末尾。这种读取方式适用于文件的内容是按照特定顺序排列的情况,比如文本文件和数据文件。

    13110

    Java 中事务的应用

    本文将深入探讨 Java 中事务的概念、原理、应用场景以及如何在不同的环境中使用事务来保障数据的正确性和可靠性。...例如,在一个银行转账系统中,从一个账户扣除金额和向另一个账户增加金额这两个操作必须作为一个整体来执行,如果其中一个操作失败,那么整个转账过程应该回滚,两个账户的余额都不应该发生变化。...一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态。例如,在转账前后,系统的总金额应该保持不变。...Java 中的 Connection 接口定义了以下几种隔离级别: TRANSACTION_READ_UNCOMMITTED:最低的隔离级别,一个事务可以读取另一个未提交事务的数据。...这种隔离级别可能导致脏读(Dirty Read)问题,即读取到了其他事务未提交的数据,这些数据可能会在后续被回滚,从而导致数据不一致。

    6310

    C语言进阶——文件操作

    电脑C盘中存储的各种信息   文件可以保存数据,使数据能做到持久化存储。文件可以使我们的操作更为合理,比如现在写的这篇博客,本质就是一个文件,不过是存储在服务器上的文件(数据)。...绝对位置的文件标识符必须全,即文件路径+文件名主干+文件名后缀。...介绍三个和随机读取有关的函数:fseek 改变文件指针偏移量、ftell 查看当前文件指针的偏移量、rewind 使文件指针复原至起始位置。...文本文件与二进制文件 文本文件   文本文件指以ASCII码(文本方式)存储的数据,原始数据机器能直接看懂,将内存中的数据对应ASCII码解码存储后,我们人类也能看懂,举个栗子,在记事本中写的文本,就是文本文件...,如果是因为读取到了末尾而结束,feof(fp) 就为真;除了这个以外,还有另一个文件读取结算原因判断函数,ferror ,当 ferror(fp) 为真时,说明此时发生了读取异常,并非正常结束,我们可以通过这两个报错函数来判断文件读取结束的真正原因

    29930

    文件操作

    ,并在文件末尾写数据 “rt+”   读写打开一个文本文件,允许读和写 “wt+”   读写打开或建立一个文本文件,允许读写 “at+”   读写打开一个文本文件,允许读,或在文件末追加数据 “rb+”...对于fgetc函数的使用有以下几点说明: 在fgetc函数调用中,读取的文件必须是以读或读写方式打开的....读取字符的结果也可以不向字符变量赋值 (例如:  fgetc(fp); 但是读出的字符不能保存) 在文件内部有一个位置指针,用来指向文件的当前读写字节位置,在文件打开时,该指针总是指向文件的第一个字节....每写入一个字符,文件内部位置指针向后移动一个字节. fputc 函数有一个返回值,如写入成功则返回写入的字符,否则返回一个 EOF .可用此来判断写符,写入一个文件,再把该文件内容读出显示在屏幕上....,读取的字符数以参数 size*nmemb 来决定.Fread() 会返回实际读取到的 nmemb 数目,如果此值比参数 nmemb 来得小,则代表可能读到了文件尾或有错误发生,这时必须用 feof()

    1.5K20

    学习文件和文件操作

    数据文件:⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。...有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使⽤,这⾥处理的就是磁盘上⽂件。...那是因为C语⾔程序在启动的时候,默认打开了3个流: • stdin 标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...每个被使⽤的⽂件都在内存中开辟了⼀个相应的⽂件信息区,⽤来存放⽂件的相关信息(如⽂件的名字,⽂件状态及⽂件当前的位置等)。这些信息是保存在⼀个结构体变量中的。...如果从磁盘向计算机读⼊数据,则从磁盘⽂件中读取数据输 ⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小是由编译系统决定的。

    10910

    Java IO(IO流)-1

    (FileOutputStream 文件输出流) java->JVM->OS 流对象使用的基本步骤 创建流的子类对象,绑定数据目的地(文件路径) 使用write方法写或read方法读 close()方法关闭流对象..., 一次读取一个字节 int read() // 读一个字节,返回读取到的字节 当读取到文件的结尾的时候,将会返回-1 read(byte[] b) // 从输入流中读入一定量的字节,并将其存储到缓存区数组...byte[] b 中 , 使用数组来提高读取效率,返回的为读取到的字符数量 read(byte[] ,int ) // 将输入流中最多 len 个数据字节读入 byte 数组。...数组读取内容的方式 从文件中读取一个字符到数组中的初始位置,然后继续读,只到数组长度满了或者到了文件结尾 当第二次读的时候会将读取到的字符依次放入数组中 ?...try/catch因为如果一下流出现异常,那么另一个流也需要关闭 if(fos!

    1.4K00
    领券