javaIO流….笔记 流向区分 应当以程序或者内存为参照物,(从文件或屏幕等)往内存中读入叫做输入流,反之输出流。...数据类型区分 字节流和字符流,现有的字节流,后来为了方便文本数据操作,才有的字符流,java中一个字符占两个字节。 一般是默认按照数据类型分类的,不是流向。...FileOutputStream & FileInputStream 向文件写入数据 //创建字节输出流对象,分三步,注意try catch包裹 //创建字节输出流对象 FileOutputStream...");//fos就像一条水管连接到文件上 //写数据 fos.write("hello,IO".getBytes());//调用write,数据就像水流顺着水管到文件中 //释放资源 //关闭文件输出流并释放与此流有关的资源...字符缓冲流读写字符串 //最为推荐的一种方式 // 字符缓冲流一次读写一个字符串 private static void method5(String srcString, String destString
概述 java流的概念 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。...即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。...字符流的工作方式是: 输出字符流:把要写入文件的字符序列(实际上是Unicode码元序列)转为指定编码方式下的字节序列,然后再写入到文件中 输入字符流:把要读取的字节序列按指定编码方式解码为相应字符序列...缓冲流是处理流的一种, 它依赖于原始的输入输出流, 它令输入输出流具有1个缓冲区, 显著减少与外部设备的IO次数, 而且提供一些额外的方法。...可见, 缓冲流最大的特点就是具有1个缓冲区,而我们使用缓冲流无非两个目的: 减少IO次数(提升performance) 使用一些缓冲流的额外的方法。
pointer = 0 写方法: raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入 读方法: int b = raf.read()--->读一个字节 注意关闭流...writeInt() 向文件写入int length() 文件长度 read() 读取文件内容 seek() 移动指针位置第几位 Code File demofile = new File("E://javaio
java.io 包下需要掌握的流有 16 个,本篇内容包括:java.io包下需要掌握的流、Java IO 案例。...Properties属性类使用) 16、Demo 16(File) ---- 一、java.io包下需要掌握的流 java.io 包下需要掌握的流有 16 个: # 文件专属: java.io.FileInputStream...java.io.BufferedOutputStream # 数据流专属: java.io.DataInputStream java.io.DataOutputStream # 标准输出流: java.io.PrintWriter...,内部被传进来的流叫做 节点流 //外部负责包装的流叫做 包装流 //也就是说此时,FileReader是节点流,BufferedReader是包装流...Java I/O流 Java 666 123 文件中: Java I/O流 Java 666 999 15、Demo 15(I/O流联合Properties属性类使用) import
这两种方法均为异步的,对于读操作而言,当有流可读取时,操作系统会将可读的流传入 read 方法的缓冲区,并通知应用程序;对于写操作而言,当操作系统将 write 方法传递的流写入完毕时,操作系统主动通知应用程序...NIO 方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4 开始支持。...AIO 方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用 OS 参与并发操作,编程比较复杂,JDK7 开始支持。
~ 本篇内容包括:关于 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 流前,...既然计算机和外界进行信息的输入和输出交互,用的是比特流,那么很容易就能想到 IO 流名字的由来了。就是比喻输入输出的数据像流一样。...我们可以这么认为,任何外部设备与内存之间输入输出的操作,都是需要输入输出流(IO流)来完成的,这里的 IO 流,指的就是比特流(或者称字节流。...靠什么来进行数据交换,就是前面说的,比特流,或者说 IO 流类。
3.按照角色进行划分 节点流:可以直接从/向外部设备读取/写入数据的流,称之为节点流,节点流也被称之为低级流。...处理流:对于已经存在的流进行了连接和封装,扩展了原来的读/写的功能。处理流也被称之为高级流。 java的io包当中包括40多个流,他们都有紧密的联系,和使用的规律,这些流都源于4个抽象基类。...OutputStream/Writer :所有输出流的基本,前者是字节输出流,后者是字符输出流。...: 处理流必须在节点流的基础之上,增加了效率,提高了性能,扩大的功能。...处理流内部包含了节点流,节点流决定了与其沟通的外部设备,而处理流则增加了其功能。
2、Channel(通道) Java NIO 的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的(input 或 output)读写通常是单向的。...Java IO 的各种流是阻塞的 IO 操作。这就意味着,当一个线程执行读或写 IO 操作时,该线程会被阻塞,直到有一些数据被读取,或者数据完全写入。...void main(String[] args) throws IOException { String str = "HELLO,NIO,我是我"; // 创建输出流...因为通道是输出流创建的,所以会一起关闭 fileOutputStream.close(); } } 4、案例:往本地文件中读数据 import java.io.File; import...创建两个流 FileInputStream fis = new FileInputStream("/Users/lizhengi/test/iodemo/demo.txt");
一、IO流分类 1、分类角度 流的方向 输入流:从数据源中读取数据到应用中的流; 输出流:从应用中将数据写入到目的地的流; 流数据类型 字节流:以字节形式来读写的流,标识是名称以Stream结尾; 字符流...:以字符形式来读写的流,标识是名称以Writer、Reader结尾; 管道流:以数据块为单位来处理,缓冲区就是用于读写的数据块; 流的角色 节点流:可以从一个节点或者向一个节点读/写数据的流,也被称为低级流...; 处理流:对存在的流进行连接或者封装、封装后的流来进行读/写、也被称为高级流。...:管道字节输出流,必须与PipedInputStream结合使用、用于线程之间的通信; FilterOutputStream:过滤字节输出流,为字节输出处理流提供扩展; DataOutputStream...Writer:字符输出流,所有字符输出流提供一个标准,基本写入的方法和简单的实现; OutputStreamWriter:字节输出转换流,用于将字节输出流转化成字符输出流。
JavaIO流File类 File类常用操作 $ exists()常用于判断文件或目录是否存在 $ delete() 删除文件/文件夹。 $ separator 设置分隔符。
用于读取字符流的抽象类。...主要的方法 void close() 关闭该流并释放与之关联的所有资源。 String getEncoding() 返回此流使用的字符编码的名称。 int read() 读取单个字符。...这个缓冲流也继承了Reader类,基本上也提供了父类有的read()等方法,另外还有readline()方法。...Writerextends Objectimplements Appendable, Closeable, Flushable 写入字符流的抽象类。...常用的方法 void close() 关闭此流,但要先刷新它。 void flush() 刷新该流的缓冲。 String getEncoding() 返回此流使用的字符编码的名称。
4:伪异步 I/O 编程 5、实例5:基于 BIO 形式下的文件上传 ---- 一、Java BIO 介绍 Java BIO 就是传统的 java io 编程,其相关的类和接口在 java.io BIO...* (2)从 Socket 管道中得到一个字节输出流。...4、实例4:伪异步 I/O 编程 在上述案例(实例3)中:客户端的并发访问增加时。...写数据给服务端 OutputStream os = socket.getOutputStream() ; // 3.把输出流包装成一个打印流...1、请求与服务端的Socket链接 Socket socket = new Socket("127.0.0.1", 8888); // 2、把字节输出流包装成一个数据输出流
unicode编码(双字节编码)文件是byte byte byte ...的数据序列文本文件是文本(char)序列按照某种编码方案(utf-8,utf-16be,gbk)序列化为byte的存储结果 字符流(...Reader Writer)—->操作的是文本文本文件 123456 字符的处理,一次处理一个字符字符的底层任然是基本的字节序列字符流的基本实现 InputStreamReader 完成byte...流解析为char流,按照编码解析 OutputStreamWriter 提供char流到byte流,按照编码处理 FileReader/FileWriter 字符流的过滤器 123456789101112131415161718192021...E:\\VSC.dat"))); bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("E:\\javaio...int c; char[] chars = new char[1024]; try { fr = new FileReader("e://javaio
javaIO流 IO引入 字节流和字符流(一些说明) 字节流没有用到缓冲区并不是没有用到内存 为什么输入流是读数据,而输出流是写数据?...) 一个编码与解码的过程 IO引入 字节流和字符流(一些说明) 在java中io流分为字节流和字符流。...字节流就是传输单位按为字节进行传输,字符流就是传输按照字符为单位进行传输 字节流没有用到缓冲区并不是没有用到内存 字节流与字符流的区别是什么呢?...void write(int b) //将指定的字节写入缓冲的输出流。 **从构造方法可知,在使用这个缓冲输出流的时候,我们可以传一个输出流的对象进去。...当然我们可以用缓冲区,缓冲流。进行相关的操作。可以用字节缓冲流一次读取一个字节的数据,也可以一次读取一个字节数组大小数据。
IO流分为输入流、输出流 输入输出流 又分为字节流、字符流 字节流 InputStream:抽象了应用程序读取数据的方式 OutputStream:抽象了应用程序写 出数据的方式 EOF = End...out.write(int b) //写出一个byte到流,b的低8位 out.write(byte[] buf) //将buf字节数组都写到流 out.write(byte[] buf, int start...,int size) //字节数组buf从start位置开始写size长度的字节到流 FileInputStream 具体实现了在文件上读取数据 FileInputStream 实现了向文件写出byte...> 使用原生缓冲的流 > 不使用缓冲的流1 2 3 4//计算时延 long start=System.currentTimeMillis(); long end=System.currentTimeMillis...最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到close语句,IO流仍然没有关闭。 |:----|:----|
Java中的实现即是最原始的SocketChannel然后accept BIO编程模型 传统BIO编程模型实现如下: { ExecutorService executor = Excutors.newFixedThreadPollExecutor...NIO编程模型 在JDK NIO 中,我们只需要面向 Selector 编程即可: public class SelectorServer { public static void main(
前言 今天需要使用JavaIO写一个简单的练习,现在将这个练习记录一下,防止日后忘记IO流相关语法。 相关知识 新增文件,并且向文件中写入数据,通过字符输出流,向文件中新增内容。...通过FileOutputStream fos = new FileOutputStream("number.txt")创建需要执行文件输出流的对象。...然后BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos))使用BufferedWriter使用缓冲输出流。...); BufferedReader br = new BufferedReader(new InputStreamReader(fis))){ //字符流将文件中的第一行读取...; } catch (Exception e) { e.printStackTrace(); } //接下来开始通过字符流读取文件中的内容
Java从入门到精通十一(javaIO流) IO引入 字节流和字符流(一些说明) 字节流没有用到缓冲区并不是没有用到内存 为什么输入流是读数据,而输出流是写数据?...) 一个编码与解码的过程 字符流说明 字符输入流读数据的方法 字符缓冲输入流 字符输出流写数据的方法 字符缓冲输出流 用输入输出实现数据的复制 做一个随机点名器 集合到文件(将对象信息拼接输入到文件)...文件到集合(将文件中的人物属性通过对象存放于集合中,然后进行遍历) 将学生成绩排序,并将数据写入文件中(排序采用多级条件) 标准输入输出流 标准输入流 标准输出流 对象序列化流于反序列化流 什么是序列化与反序列化...void write(int b) //将指定的字节写入缓冲的输出流。 **从构造方法可知,在使用这个缓冲输出流的时候,我们可以传一个输出流的对象进去。...通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。
关键字:IO基础,JUnit生命周期,字节流,字符流,字符编码,对象流,序列化,反序列化 Java I/O 流是一组有顺序的,有起点和终点的字节集合。是对设备文件间数据传输的总称和抽象。...java的io在jdk1.1以后添加了字符流的支持,为我们直接操作字符流提供了方便。...节点流:文件(File),管道(Piped)和数组(Array)(他们每个类都分别包括输入输出和字节字符四种流) 处理流:其余的都是处理类,他们都是属于节点流的装饰类,下面我整理了一个关于处理流的表格。...关于处理流,我们展示了缓冲区,对象流,基本类型数据流,转化流,打印流,合并流,行号读入流,推回输入流以及字符串读写流。...参考资料 《Java编程思想》 《effective java》 JDK API Document 源码位置 Evsward的github
缓冲流 缓冲流: 缓冲流 ①字节缓冲流 1)BufferedInputStream —— 字节缓冲输入流 2)BufferedOutputStream —— 字节缓冲输出流 ②字符缓冲流 1...字节流自身不带缓冲区,缓冲流能够显著提高性能 2)字符缓冲流 字符缓冲流: 使用 public BufferedReader(Reader r):把基本流包装成高级流,提高读取数据的效率(字符缓冲输入流对象...,速度快) 字符流自带缓冲区,缓冲流对字符流效率提升不明显,但字符缓冲流对字符流的主要意义在于:readLine() 和 newLine() 字符缓冲输入流 特有方法: public String...作用:当字节流想要使用字符流中的方法时,可使用转换流。 ---- 8. 序列化流 / 反序列化流 序列化流(对象操作输出流): 作用:可以将Java对象写入到本地文件中。...打印流 打印流: 打印流 字节打印流PrintStream 字符打印流PrintWriter 字节打印流-PrintStream 构造方法(获取字节打印流对象): public
领取专属 10元无门槛券
手把手带您无忧上云