本文最后更新于 673 天前,其中的信息可能已经有所发展或是发生改变。 1. 什么是流 内存与存储设备之间传输数据的管道 2. 流的分类 按方向 输入流 输出流 按单位 字节流 以字节为单位,可以读写所有数据 字符流 以字符为单位,只能读写文本数据 按功能 节点流 具有实际传输数据的读写功能 过滤流 在节点流的基础上增强功能 3. FileInputStream FileInputStream fileInputStream = new FileInputStream("s
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
接下来介绍 FileInputStream 和 FileOutputStream
1)、创建socket对象 2)、建立连接后,通过输出流向服务端发送请求信息 3)、通过输入流获取服务端返回的响应信息 4)、关闭响应资源
【I/O流】 Input/Output:输入输出机制 输入机制:允许java程序获取外部设备的数据(磁盘,光盘,网络等)。 输出机制:保留java程序中的数据,输出到外部设备上(磁盘,光盘等)。
上面的代码都是新建对象,然后将文件进行清空然后将数据写入的操作,那么要是我们想要对文件进行续写该如何操作呢?
ByteArrayInputStream 和 ByteArrayOutputStream
看得出来,如果你从来不曾回退过,那么好像什么都一样,还是使用原来的InputStream 进行读取
BufferedInputStream 和 BufferedOutputStream一样,他们都是过滤流
提到 IO,就要说 IO 模型,否则就像学 Java,不讲面向对象一样,是很难全面的理解它的精髓的。
还记得PipedInputStream 和 PipedOutputStream么
对于管道流的学习,只需要了解其根本即可,那就是PipedOutputStream 内部指向了一个 PipedInputStream
NIO 也叫 Non-Blocking IO 是同步非阻塞的 IO 模型。线程发起 IO 请求后,立即返回。同步指的是必须等待 IO 缓冲区内的数据就绪,而非阻塞指的是,用户线程不原地等待 IO 缓冲区,可以先做一些其他操作,但是要定时轮询检查 IO 缓冲区数据是否就绪。
他们的逻辑类似ByteArrayInputStream ByteArrayOutputStream,只不过一个是字节,一个是字符而已
功能简介 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式 装饰器模式中具体的装饰类 它提供的功能就是便捷的打印各种数据形式 FilterInputStre
RandomAccessFile java提供的对文件内容的访问,即可以读文件,也可以写文件支持随机访问文件可以访问文件任意位置 java的文件模型 在硬盘上的文件时 byte byte byte存储的,是数据的集合 打开文件 两种模式:“rw”(读写),“r”(只读) RandomAccessFile raf = new RandomAccessFile(File,"rw") 文件指针,打开文件时指针在开头 pointer = 0 写方法: raf.write(int)--->只写一个字节(后8
功能简介 还记得前面说过的CharArrayReader 和 CharArrayWriter吗? CharArray 是数据源 CharArrayReader 是读, 从一个CharArray
为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度
在java中io流分为字节流和字符流。字节流和字符流分别对应相应的读取和写入操作。整体的功能就是实现对输入输出的操作。
从提供的构造方法的·参数我们可以了解到这个实现类基本的底层还是有字节流的实现。或者可以跟进源码。
今天需要使用JavaIO写一个简单的练习,现在将这个练习记录一下,防止日后忘记IO流相关语法。
IO流用来处理设备之间的数据传输,Java程序中,对于数据的输入/输出操作 都是以“流”的方式进行的。java.io包下提供了各种“流”类的接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。
DataInputStream和DataOutputStream 继承了各自的FilterInputStream以及FilterOutputStream
Java程序中,对于数据的输入/输出操作以”流(stream)” 的方式进行。是指从源节点到目标节点的数据流动
BufferedReader 从字符输入流中读取文本,内部缓冲各个字符,从而实现字符、数组和行的高效读取
SequenceInputStream的使用比较简单,只需要传递进入两个流或者一个包含流的Enumeration即可
功能简介 我们之前一直说流顺序的,不能随机访问,的确之前说的IO体系的确如此 但是 RandomAccessFile自成一派 此类的实例支持对随机访问文件的读取和写入 我们之前介绍过DataOu
所以可以看得出来InputStreamReader只是一个外包公司,他的活都是转包给StreamDecoder的
FileWriter 类从 OutputStreamWriter 类继承而来。该类按字符向流中写入数据。可以通过以下几种构造方法创建需要的对象。
应当以程序或者内存为参照物,(从文件或屏幕等)往内存中读入叫做输入流,反之输出流。
java.io 包下需要掌握的流有 16 个,本篇内容包括:java.io包下需要掌握的流、Java IO 案例。 ---- 文章目录 一、java.io包下需要掌握的流 二、Java IO 案例 1、Demo 1(FileInputStream) 2、Demo 2(FileInputStream) 3、Demo 3(FileInputStream) 4、Demo 4(FileOutputStream) 5、Demo5(FileInputStream & FileOutputStream完成文件的拷贝
序列化是指把Java对象保存为二进制字节码的过程,Java反序列化是指把二进制码重新转换成Java对象的过程
InputStream 和 OutputStream 对于字节流的输入和输出 是作为协议的存在 所以有必要了解下这两个类提供出来的基本约定 这两个类是抽象类,而且基本上没什么实现,都是依赖于子类
关键字:IO基础,JUnit生命周期,字节流,字符流,字符编码,对象流,序列化,反序列化 Java I/O 流是一组有顺序的,有起点和终点的字节集合。是对设备文件间数据传输的总称和抽象。 在IO中涉及的设备文件包括文件、控制台、网络链接等,这其中又根据流的方向可以将两端的设备文件分为数据源对象和接收端对象 数据源对象:有能力产出数据 接收端对象:有能力接收数据 而IO流实际上屏蔽了在实际设备中的处理数据的细节,这些处理方式也叫通信方式可以包括顺序、随机存取、缓冲、二进制、按字符、按字节、按行等。 字节
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
他与PrintStream的逻辑上功能目的是相同的--他们都想做同一件事情--更便捷的格式化打印输出
We are all worms in the sewer, but there are always people looking up at the stars.
Java IO(Input/Output)模型是用于处理输入和输出的一种编程模型。它提供了一组类和接口,用于读取和写入数据流、文件、网络连接等。
小师妹又对F师兄提了一大堆奇奇怪怪的需求,要格式化输出,要特定的编码输出,要自己定位输出,什么?还要阅后即焚?大家看F师兄怎么一一接招吧。
在接触 IO 流前,无论是 变量的声明、数组的创建,又或者是复杂的并发设计还是 Jvm 的性能调优,我们更多的还是和内存打交道。但我们知道计算机组成包括运算器,控制器,存储器,输入设备,输出设备。也就是不仅仅只有内存和 CPU,所以程序设计语言必须要提供程序与外部设备交互的方式,这就是 IO 框架的由来。我们需要和外部设备进行数据的交互。
小师妹在学习NIO的路上越走越远,唯一能够帮到她的就是在她需要的时候给她以全力的支持。什么都不说了,今天介绍的是NIO的基础Buffer。老铁给我上一套Buff。
小师妹:F师兄,使用IO和NIO不就是为了让生活更美好,世界充满爱吗?让我等程序员可以优雅的将数据从一个地方搬运到另外一个地方。利其器,善其事,才有更多的时间去享受生活呀。
1.在IO有两种数据传输格式一个是字符流还一个是字节流 但是字符流就会涉及到编码的问题 一开始美国使用的自己的编码表就是ASCII表 中国的字符需要被识别也需要编码表于是就有了GB2312 但是由于中国的子很多,还有少数名族等等后来又进行了优化扩容就出现了GBK 最后国际标准组织制定了一个包含所有国家所有地区的码表就是Unicode 之后对Unicode进行了优化也就是以前是所有的字符都是两个字节表示,但是现在就可以一个字节或者三个字节,具体看情况的UTF_8 字符流一般都包含了编码表,也就是在传输的时候你
缓存是I/O的一种性能优化.缓存流为 I/O 流增加了内存缓存区.有了缓存区,那么在流上执行 skip().mark() reset()方法,都成为可能. 总来的来说其实就是通过缓存读写.执行效率更高,更快.
我们上面列出来了ByteArray File Piped Object String CharArray 这几种常用的数据源形式
比如ByteArrayInputStream和ByteArrayOutputStream 接下来我们还会详细的介绍到
AIO(Asynchronous I/O)即异步I/O,是Java中一种基于事件和回调机制的I/O模型。它在进行I/O操作时不需要阻塞线程,而是通过操作系统提供的异步通知机制,在数据准备好后再通知应用程序进行读取或写入操作。
5个核心类:File、OutputStream、InputStream、Writer、Reader;
领取专属 10元无门槛券
手把手带您无忧上云