FileInputStream&FileOutputStream用法示例

FileReader、FileWriter只能够用来处理文本文件,但对于非文本文件(图片、视频、音乐等),这两个类就没有能力处理了。对于非文本文件,我们需要使用xxxInputStream、xxxOutputStream这些类来处理。 复制图片 try ( FileInputStream fileInputStream = new FileInputStream("dir/1.jpg&q…

缓冲流

对于节点流FileReader、FileWriter以及FileInputStream、FileOutputStream,真实开发场景中很少直接用,一般都会配合使用处理流(如缓冲流),来提高文件的处理效率。 缓冲流 为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区。 缓冲流要“套接”在相应的节点流之…

转换流

转换流提供了在字节流和字符流之间的转换 Java API提供了两个转换流: InputStreamReader:将InputStream转换为Reader OutputStreamWriter:将Writer转换为OutputStream 常见的应用场景有: 文件字符编码的转码 读取指定编码的文本文件 // 读取gdk编码的文本文件,使用utf-8读取 public static void rea…

对象流

ObjectInputStream和OjbectOutputSteam:用于存储和读取基本数据类型数据或对象的处理流。它的强大之处就是可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来。 对象序列化 对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其它程序获取了这种二进制流,…

标准输入输出流、打印流、数据流

标准输入输出流、打印流、数据流作为了解知识。 标准输入、输出流 System.in和System.out分别代表了系统标准的输入和输出设备。默认的标准输入流为键盘、标准输出流为屏幕。 System.in是InputStream类型,而System.out是PrintStream,PrintStream是OutputStream的子类 重定向:通过System类的setIn,setOut方法对默认设…

RandomAccessFile

RandomAccessFile 声明在java.io包下,但直接继承于java.lang.Object类。并且它实现了DataInput、DataOutput这两个接口,也就意味着这个类既可以读也可以写。 RandomAccessFile 类支持 “随机访问” 的方式,程序可以直接跳到文件的任意地方来读、写文件 支持只访问文件的部分内容 可以向已存在的文件后追加内容 RandomAccessFi…

Java NIO概述

Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的)、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。 Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一…

Stream介绍

Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是Stream API。注意,这里的Stream不同于java.io的InputStream和OutputStream,它代表的是任意Java对象的序列。两者对比如下: java.io java.util.stream 存储 顺序读写的byte或char 顺序输出的任意Java对象实例 用途 序列化至文件或网络 内存计算/…

创建Stream

下面介绍四种方法介绍如何创建Stream 通过集合 Java8 中的 Collection 接口被扩展,提供了两个获取流的方法,这两个方法是默认实现方法: default Stream stream() : 返回一个顺序流 default Stream parallelStream() : ArrayList<Integer> nums = new ArrayList<>(…

Stream中间操作

多个 中间操作可以连接起来形成一个 流水线,除非流水线上触发终止操作,否则 中间操作不会执行任何的处理!而在 终止操作时一次性全部处理,称为“惰性求值”。 筛选与切片 方法 描述 filter(Predicate p) 接收 Lambda , 从流中排除某些元素 distinct() 筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素 limit(long maxS…