IO家族类层次体系结构横向匹配 上一篇文章中主要介绍了JavaIO流家族的整体设计思路,简单回顾下 基本逻辑涉及数据源 流的方向,以及流的数据形式这三个部分的组合 按照流的数据形式和流的方向,组合而来了四大家族 回退) PushbackInputStream 无 PushbackReader 无 Print(打印) 无 PrintStream 无 PrintWriter 从上面的列表应该可以看得出来,对于IO体系中的主要的一些类和接口 我们只需要明确两点,就能够更加深入的了解他们 1.针对于各种数据源,四大家族的处理逻辑 2.扩展功能点的含义 注意: 很多IO的成员并不操作磁盘上的文件 比如ByteArrayInputStream 首先,这并不是不可以, 的确是可以构造一个跟IO体系结构没关系的字节数组 来操纵类进行字节数组的读写 可是,他的行为显然跟IO非常的类似,在定义一套不同的接口显然增加开发者使用成本 再者,不管从哪里读
2、API体系 ? DataInputStream:数据字节输入流,一般与DataOutputStream结合使用; ObjectInputStream:对象字节输入流,与ObjectOutputStream结合使用; 2、 pathname):指定文件或者文件夹的路径创建一个File文件; File(File parent,String child):根据parent抽象路径名和child路径名字符创建新的File实例; 2、
文章目录 一、java网络编程 1、基础知识 a、ip地址和端口号 b、TCP和UDP协议 c、URL d、InetAddress 2、socket a、创建socket实例 b、客户端连接 步骤: c 、服务端连接 步骤: d、总结 二、阻塞IO 1、java的IO接口 a、基于字节操作的IO接口 b、基于字符操作的IO接口 c、基于磁盘操作的IO接口 d、基于网络操作的IO接口 2、阻塞IO的通信模型 BIO数据在写入OutputStream和从InputStream读取时,都有可能发生阻塞 b 、当前一些需要大量http长连接的情况 c 、需要另外一种新的IO操作方式 三、NIO 1、工作原理 2、 URL url = new URL("http://www.baidu.com"); InputStream inputStream = url.openStream();// 2、 socket a、创建socket实例 b、客户端连接 步骤: 1)、创建socket对象 2)、建立连接后,通过输出流向服务端发送请求信息 3)、通过输入流获取服务端返回的响应信息 4)、关闭响应资源
Unicode进行了优化也就是以前是所有的字符都是两个字节表示,但是现在就可以一个字节或者三个字节,具体看情况的UTF_8 字符流一般都包含了编码表,也就是在传输的时候你可以指定编码方式然后IO流帮你转换 2. =-1){ System.out.print((char) by); } } public static void read_2(FileInputStream 这里为了区分使用哪一个流对象我们就具体分析一下: 1.明确源和目的: 源的话我们就是用InputStream和Reader 目的则是OutputStream和Writer 2.
什么是流 内存与存储设备之间传输数据的管道 2. copyLarge方法:将输入流中的内容拷贝到输出流中,适合大于2G内容的拷贝。 lineIterator方法:返回可以迭代每一行内容的迭代器。 read方法:将输入流中的部分内容读入到字节数组中。
字符流原理 Java中的字符流处理的最基本的单元是Unicode码元(大小2字节),它通常用来处理文本数据。所谓Unicode码元,也就是一个Unicode代码单元,范围是0x0000~0xFFFF。
javaIO流….笔记 流向区分 应当以程序或者内存为参照物,(从文件或屏幕等)往内存中读入叫做输入流,反之输出流。 * 一次读取一个字节数组:int read(byte[]b); 返回值是实际读取的字节个数 * * @author TWS * */ public class CopyFiledemo2 0, len); } bos.close(); bis.close(); } //用字符缓冲区方式,移动视频时不如上一种高效 public static void method2( String string, String string2) throws IOException { BufferedReader br=new BufferedReader(new FileReader (string)); BufferedWriter bw=new BufferedWriter(new FileWriter(string2)); char[] bys=new char[1024
writeInt() 向文件写入int length() 文件长度 read() 读取文件内容 seek() 移动指针位置第几位 Code File demofile = new File("E://javaio
LineNumberReader本身并没有太多的东西,他是BufferedReader的子类
功能简介 我们之前一直说流顺序的,不能随机访问,的确之前说的IO体系的确如此 但是 RandomAccessFile自成一派 此类的实例支持对随机访问文件的读取和写入 我们之前介绍过DataOutput 如果这个长度小于 实际长度(length方法返回的值), 文件被截断,并且如果getFilePointer 大于newLength ,那么它将变成newLength 2.
看得出来,如果你从来不曾回退过,那么好像什么都一样,还是使用原来的InputStream 进行读取
将数据解释为原始的二进制数据 读写均为字节数据 二进制数据不需要编码和解码,比文本Io效率更高 可移植(与主句编码方式无关) 2, 节存储数据,一个字节的7个bit位) GBK:主要处理中文,借助两个字节存储数据) utf-8(对Unicode编码格式的优 化,一个字节存储 Unicode:2个字节
功能简介 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式 装饰器模式中具体的装饰类 它提供的功能就是便捷的打印各种数据形式 FilterInputStre
---- 文章目录 一、java.io包下需要掌握的流 二、Java IO 案例 1、Demo 1(FileInputStream) 2、Demo 2(FileInputStream) 3、Demo 3 import java.io.IOException; /** * java.io.FileInputStream * 1) 文件字节输入流、万能的、任何类型的文件都可以采用这个流来读 * 2) Demo 2(FileInputStream) import java.io.FileInputStream; import java.io.IOException; /** * public int java.io.FileOutputStream; import java.io.IOException; /** * java.io.FileOuputStream * 1) 文件字节输出流,负责写 * 2) chars = {'我', '是', '中', '国', '人'}; writer.write(chars); writer.write(chars, 2,
---- 文章目录 一、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 模型,否则就像学 2、IO 的流程 在区分各种 IO 模型的区别之前,我们需要先了解一个 IO,在操作系统的层面究竟发生了哪些事情。注意,我们说的 IO 模型对 IO 的优化,都是基于读 IO。 2、非阻塞 为了解决 “同步阻塞” 进程可能无期限阻塞的情况,于是产生了 “同步非阻塞”。 BIO 通信模型图: 2、NIO NIO 也叫 Non-Blocking IO 是同步非阻塞的 IO 模型。线程发起 IO 请求后,立即返回。
---- 文章目录 一、Java NIO 介绍 二、Java NIO 核心组件 1、Buffer(缓冲区) 2、Channel(通道) 3、案例:往本地文件中写数据 4、案例:往本地文件中读数据 5、案例 2、Channel(通道) Java NIO 的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的(input 或 output)读写通常是单向的。 创建输入流 FileInputStream fis = new FileInputStream(file); // 2. FileOutputStream fos = new FileOutputStream("/Users/lizhengi/test/iodemo/temp.txt"); // 2.
extends InputStream> e) public SequenceInputStream(InputStream s1, InputStream s2) 实现原理 所谓的连接,只是顺序的读取多个流而已
~ 本篇内容包括:关于 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 流前, 2、IO 流的介绍 我们的系统和外部的交互主要依赖于 比特流(数据线里传播),比特就是 bit 的谐音,计算机中“位”的意思,代表 0 或 1。1 位或者 1bit,就是一个 0 或一个 1。 2、输入输出流 API 提供了两个顶层抽象类,用来表示操作所有的输出输出:InputStream、OutputStream。并且,这两个类表示字节的输入输出,因为输入输出的本质是字节流。 ---- 三、Java IO 层次体系结构 在整个 Java.io 包中最重要的就是 5 个类和一个接口。
首先需要一个Writer 2. 自动刷新的标志 3. 字符编码的设置 对于一个Writer 1. 他要么就是一个直接的Writer 2. 自然需要有足够便捷的构造形式,你看那么多构造方法,最终不过也就是一种形式的构造方法 2.
import java.io.File; import java.io.FilenameFilter; import java.util.regex.Pattern; public class DirList2 File file2 = new File("E:\\桌面文件\\JAVA\\src"); File file3 = new File(file2, "demo.txt"); File(URI uri) 2 成员方法 2.1 创建 成员方法 功能 参数介绍 返回值介绍 异常 备注 public boolean createNewFile() 创建文件,如果存在就不创建 —— 创建成功返回true,文件存在或创建失败返回 文件不存在返回false 2.