IO家族类层次体系结构横向匹配 上一篇文章中主要介绍了JavaIO流家族的整体设计思路,简单回顾下 基本逻辑涉及数据源 流的方向,以及流的数据形式这三个部分的组合 按照流的数据形式和流的方向,组合而来了四大家族 回退) PushbackInputStream 无 PushbackReader 无 Print(打印) 无 PrintStream 无 PrintWriter 从上面的列表应该可以看得出来,对于IO体系中的主要的一些类和接口 首先,这并不是不可以, 的确是可以构造一个跟IO体系结构没关系的字节数组 来操纵类进行字节数组的读写 可是,他的行为显然跟IO非常的类似,在定义一套不同的接口显然增加开发者使用成本 再者,不管从哪里读
2、API体系 ? 管道字符输入流,与PipedWriter结合使用、用于线程之间的通信; FilterReader:过滤字符输入流,为字符输入流提供扩展; FileReader:文件字符输入流,字符的形式读取文件中的内容; 4、 true,已存在就不创建然后返回false; mkdir():在指定位置创建目录,这只会创建最后一级目录,上级目录不存在就抛异常; mkdirs():在指定位置创建目录,这会创建路径中所有不存在的目录; 4、
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); //4、 = null){ System.out.println("我是客户端,服务端说:" + string); } //4、关闭响应资源 } c、服务端连接 步骤: 1)、创建ServerSocket对象, 绑定监听端口 2)、通过accept() 方法监听客户端请求 3)、连接建立后,通过输入流读取客户端发送的请求信息 4) System.out.println("我是服务端,客户端说:"+ string); } socket.shutdownInput(); //关闭输入流 //4、 serverSocket.close(); } d、总结 1)、创建ServerSocket和Socket 2) 、打开连接到Socket的输入输出流 3)、按照协议对Socket进行读写操作 4)
ReadMedia |—ReadData |—BufferedRead 注意装饰类是Read的子类,并且他和被装饰类是同一个层次,因为他是更强的被装饰类,所以他们是同一个层级 4.
= -1){ System.out.print(new String(bytes,0, count)); } 4.
流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。
javaIO流….笔记 流向区分 应当以程序或者内存为参照物,(从文件或屏幕等)往内存中读入叫做输入流,反之输出流。
writeInt() 向文件写入int length() 文件长度 read() 读取文件内容 seek() 移动指针位置第几位 Code File demofile = new File("E://javaio
LineNumberReader本身并没有太多的东西,他是BufferedReader的子类
功能简介 我们之前一直说流顺序的,不能随机访问,的确之前说的IO体系的确如此 但是 RandomAccessFile自成一派 此类的实例支持对随机访问文件的读取和写入 我们之前介绍过DataOutput
看得出来,如果你从来不曾回退过,那么好像什么都一样,还是使用原来的InputStream 进行读取
文本数据存储 依赖文件编码方式,它输入输出需要编码解码 3,节点流 从具体介质读写数据的类 4,
功能简介 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式 装饰器模式中具体的装饰类 它提供的功能就是便捷的打印各种数据形式 FilterInputStre
包下需要掌握的流 二、Java IO 案例 1、Demo 1(FileInputStream) 2、Demo 2(FileInputStream) 3、Demo 3(FileInputStream) 4、 Demo 4(FileOutputStream) 5、Demo5(FileInputStream & FileOutputStream完成文件的拷贝) 6、Demo 6(FileReader) 7、Demo Users/lizhengi/test/iodemo/temp.txt"); //开始读,采用byte数组 byte[] bytes = new byte[4] /iodemo/temp.txt"); //开始读,字节对应的是byte数组,字符对应的是char数组 char[] chars = new char[4] ; //一次读取4个字符 int readCount = 0; while ((readCount = reader.read(chars)) !
---- 文章目录 一、Java IO 与 IO 模型 1、IO 与 IO 模型的关系 2、IO 的流程 二、五种 IO 模型 1、同步阻塞 2、非阻塞 3、多路复用 IO 4、信号驱动 5、异步IO 三、三种 Java IO 模型 1、BIO 2、NIO 3、AIO 4、适用场景分析 ---- 一、Java IO 与 IO 模型 1、IO 与 IO 模型的关系 提到 IO,就要说 IO 模型,否则就像学 4、信号驱动 在以上的 IO 模型中,都是需要应用自己去询问 Socket 是否已经准备好了数据,而信号驱动就是由 Socket 主动告诉你有没有准备好数据。 4、适用场景分析 BIO 方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4 以前的唯一选择,但程序直观简单易理解。
---- 文章目录 一、Java NIO 介绍 二、Java NIO 核心组件 1、Buffer(缓冲区) 2、Channel(通道) 3、案例:往本地文件中写数据 4、案例:往本地文件中读数据 5、案例 fileChannel.write(allocate); // 关闭输出流,因为通道是输出流创建的,所以会一起关闭 fileOutputStream.close(); } } 4、 准备一个缓冲区 ByteBuffer buffer = ByteBuffer.allocate((int)file.length()); // 4. 复制 destFc.transferFrom(sourceFc,0,sourceFc.size()); //4.关闭 fis.close(); :有新的网络连接可以 accept,值为 16 int OP_CONNECT : 代表连接已经建立,值为 8 int OP_READ 和 int OP_WRITE : 代表了读、写操作,值为 1 和 4
SequenceInputStream的使用比较简单,只需要传递进入两个流或者一个包含流的Enumeration即可
~ 本篇内容包括:关于 IO 流、关于 Java IO 流、Java IO 层次体系结构 ---- 文章目录 一、关于 IO 流 1、IO 流的作用 2、IO 流的介绍 二、关于 Java IO 流 1、关于 Java 文件IO 2、输入输出流 3、缓冲流 4、Reader 和 Writer 三、Java IO 层次体系结构 ---- 一、关于 IO 流 1、IO 流的作用 在接触 IO 流前, 将来还有别的字节流来操作别的设备(比如将来需要通过操作网络设备获取网络数据,再比如需要操作机器人,那么或许就会再来个 RobotInputStream 和 RobotOutputStream,这些新的需求也就都可以继承这个体系 4、Reader 和 Writer 人们需要有能够处理字符的类,或者说这个类提供一个功能:就是把输入的字节转成字符,把要输出的字符转成计算机可以识别的字节。 ---- 三、Java IO 层次体系结构 在整个 Java.io 包中最重要的就是 5 个类和一个接口。
他与PrintStream的逻辑上功能目的是相同的--他们都想做同一件事情--更便捷的格式化打印输出
main(String[] args) throws IOException { CopyFile copyFile = new CopyFile("E:\\桌面文件\\媒体\\生而为人.m4a ", "E:\\桌面文件\\生而为人.m4a"); copyFile.copy(); } } package Note.iosystem; import