前些日志搞了一些I/O的操作,感觉有些生疏了,之前就没有对其做一个总结:
看来有必要做一个小结:
I : in 读
O: Out 写
1,根据处理的数类型不同:字节流和字符流符。
2,根据流向不同:输入流和输出流。
因为文件编码的不同,而有了对字符进行高效操作的字符流对象。
原理:就是基于字节流读取字节时,去查了下指定的码表。
字节流和字符流的区别:
1,字节流读取的时候,读到一个字节就返回一个字节;
字符流使用了字节流读到一个或多个字节,先去查指定的编码表,将查到字符返回。
2,字节流可以处理所有类型的数据,如图片,音频数据、视频数据;
字符流只能处理字符数据。
只要是处理纯文本数据,就要优先考虑使用字符流。除此之外都应该使用字节流。
IO 体系:
1,字节流
InputStream(读) , OutputStream(写)
2,字符流
Reader(读),Write(写)
Reader
|--InputStreamReader
|--FileReader:专门用于处理文件的字符读取流对象。
Writer
|--OutputStreamWriter
|--FileWriter:专门用于处理文件的字符写入流对象。
Reader :常见的方法:
1, int read();
读取一个字符。返回的是独到的那个字符,如果独到流的末尾,返回-1。
2,int read(char[]):
将读到的字符存入指定的数组中,返回的是读到的字符个数,也就是往数组里装的元素的个数。如果读到流的末尾,返回-1.
3,close();
读取字符其实用的是window系统的功能,就是希望使用完毕后,进行资源的释放。
Writer 中常见的方法:
1,write(ch):将一个字符写入流中。
2,write(char[]):将一个字符串写入流中。
3,write(String):将一个字符串写入流中。
4,flush():刷新流,将流中的数据刷新到目的地中,流还存在。
5,close():关闭资源,首先会调用flush(),然后关闭。
相关推荐
熟悉系统调用接口和文件I/O操作是成为合格的Linux程序员的基础,也是解决实际问题的关键。在进行文件操作时,理解文件描述符、系统调用的工作原理以及如何正确使用它们,能够帮助开发者编写出更稳定、高效的代码。
I/O操作的输入和输出是相对于当前运行的程序而言的。"读"是指从外部获取数据,如文件内容;"写"是指将数据输出到外部,如保存文件。Java中的I/O系统不仅涵盖了文件的读写,还包括网络数据交换、内存数据处理及控制台...
良好的驱动程序设计应考虑到性能因素,如减少不必要的I/O操作,合理使用缓存,以及避免阻塞线程等。了解设备特性和系统特性,结合Apple推荐的最佳实践,可以提高驱动程序的运行效率。 9. 实践与应用 学习I/O Kit...
根据提供的文件内容,可以看出SHENZHEN I/O是一款集成了电子电路设计、编程模拟和经营策略元素的电脑游戏。以下是从手册内容中提取的详细知识点: 1. SHENZHEN I/O游戏手册的使用建议: 手册建议玩家为了获得最佳的...
异步I/O是Windows最强大的I/O模型,它允许在I/O操作完成时通知应用程序,而不是在开始时。Windows API提供了`AsyncRead`和`AsyncWrite`函数来实现这种模型。这个模型特别适用于大文件传输和高并发场景。 6. **完成...
在传统的I/O模型中,读写操作通常是阻塞的,即在等待数据准备好或完成写入时,线程会被挂起。而在NIO中,通道和缓冲区支持非阻塞模式,当数据未准备好时,读写操作不会阻塞,而是立即返回,允许线程执行其他任务,...
- 重叠I/O是Windows特有的另一种异步I/O模型,使用`WSASend`和`WSARecv`函数,允许在I/O操作进行的同时执行其他计算任务。 - 通过配合I/O完成端口(IOCP)使用,可以实现高度并发的网络服务,特别适合服务器端开发...
在这个基础实验"open.c"中,我们将深入探讨如何使用C语言来实现Linux下的I/O操作,特别是文件的打开操作。这个实验主要涉及到Linux的系统调用`open()`,它是所有文件操作的起点。 `open()`函数是Linux内核提供的一...
3. **非阻塞I/O(NIO)**:Java NIO在Java 1.4引入,提供了异步I/O操作,可以处理多个连接,而无需为每个连接创建一个新的线程。关键类有Selector、Channel和Buffer,Selector可以监控多个通道的事件,Channel代表I/...
在实验中,我们使用了多个算法来实现不同的I/O操作。例如,在 sy9_2 中,我们使用了 `setf` 函数来设置输出的格式,并使用 `width` 函数来设置输出的宽度。在 sy9_3 中,我们使用了 `ofstream` 类来实现文件的写操作...
4. **流对象**: Stream是所有I/O操作的基础抽象类,包括读写文件、网络通信等。子类如FileStream、MemoryStream、StreamReader和StreamWriter等,提供了具体的数据传输实现。流对象可以进行缓冲,提高数据传输效率,...
51单片机I/O接口是电子工程领域中基础且重要的组成部分,对于任何涉及51系列微控制器的设计和开发工作来说,理解其I/O口的工作原理和应用是至关关键的。51单片机,全称8051单片机,是由英特尔公司开发的一种8位微...
在一些情况下,可能需要对现有的I/O配置进行调整,或是对线缆连接进行检查,确保所有的连接都是正确且可靠的。 总结来说,安川机器人DX100的I/O信号配置是实现机器人与外部设备有效交互的重要手段。在使用DX100之前...
文件I/O操作主要包括打开、关闭、读取、写入和控制文件。在嵌入式环境中,这些操作同样适用,但可能需要考虑资源限制和效率问题。 2. **标准I/O(stdio)** 标准I/O库是C语言的标准库,提供了诸如`fopen`、`fclose...
51单片机I/O口基础应用主要涵盖了对单片机与外界交互的基本操作,包括LED控制、数码管显示以及按键检测。51单片机是广泛应用的微控制器,其I/O口是它与外部设备通信的关键部分。 51单片机具有四个8位双向输入输出...
整个实验报告涉及了单片机的基础操作、I/O端口的读写操作、状态机逻辑设计以及程序调试等多个重要知识点。通过这样具体而微的实践,学生不仅能够深刻理解单片机的工作原理,还能在实践中不断提高自己的编程技能和...
总之,Java I/O中的过滤流是构建复杂I/O操作的基础,它们允许开发者在不改变原有流的基础上添加新的功能,提高了代码的复用性和灵活性。通过深入学习和实践,开发者可以更好地应对各种I/O需求,实现高效的数据处理。