字节流

字节字符转化流——InputStreamReader和OutputStreamWriter

蓝咒 提交于 2020-01-24 02:53:23
在 字符流——Write和Reader 中,最后我们发现其实字符流最终还是转化为字节流,进行对文件的操作的,它借助的就是InputStreamReader和OutputStreamWriter。 InputStreamRead和OutputStreamWriter又称转化流,可以将一个字节流转换为字符流,也可以将一个字符流转换为字节流。 InputStreamReader:可以将输入的字节流转换为转换为字符流的输入形式 OuputSteamWriter:可以将输入的字符流转换为字节流的输出形式 其实上述两种情况说出来比较不好理解,其实这是站在流的方向上进行描述的,接来下我们以例子为例,先来看一看InputStreamReader public class ChangeStreamDemo { public static void main ( String [ ] args ) { try { InputStream is = new FileInputStream ( new File ( "F:/demo/test.txt" ) ) ; read ( is ) ; } catch ( FileNotFoundException e ) { e . printStackTrace ( ) ; } } private static void read ( InputStream

Java IO流学习总结

孤人 提交于 2020-01-23 19:50:10
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流, 流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别: 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。 结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。 输入流和输出流 对输入流只能进行读操作,对输出流只能进行写操作,程序中需要根据待传输数据的不同特性而使用不同的流。 Java IO流对象 1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可以看出: InputStream 是所有的输入字节流的父类,它是一个抽象类。 ByteArrayInputStream、StringBufferInputStream

Java基础 -IO流

我是研究僧i 提交于 2020-01-19 19:43:55
IO流 什么是IO:就是将数据的传输看做是一种数据的流动 按照流动的方向 以内存为基准 分为 输入 input 和 输出 output 即流向内存是输入流 流出内存的输出流 Java中I/O操作主要是指使用 java.io 包下的内容,进行输入、输出操作 输入也叫做读取数据 输出也叫做作写出数据 IO的分类:不同的分类标准有不同种的分类 根据 数据的流向 分为:输入流和输出流 输入流 :把数据从 其他设备 上读取到 内存 中的流 输出流 :把数据从 内存 中写出到 其他设备 上的流 根据 数据的类型 分为:字节流和字符流 字节流 :以 字节 为单位,读写数据的流 字符流 :以 字符 为单位,读写数据的流 字节流 java.io.OutputStream 抽象类 是表示字节输出流的所有类的超类 将指定的字节信息写出到目的地 定义了字节输出流的基本共性功能方法: (这五种方法都常用) public void close() :关闭此输出流并释放与此流相关联的任何系统资源 当完成流的操作时 必须调用此方法 释放系统资源 public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出 public void write(byte[] b) :将 b.length字节从指定的字节数组写入此输出流 public void write(byte[] b, int off,

java高级之文件IO流

你离开我真会死。 提交于 2020-01-17 16:37:03
1.文件IO 外存 内存 缓存 打开txt文件的步骤: 1.启动一个应用程序[记事本,word,excel],系统会给这个程序分配内存空间 2.在外存和内存之间建立一个管道 3.将外存中的数据通过管道输送到内存中 4.输送数据的管道叫做数据流对象 PS: 1.字节是可以操作的最小的有意义的单位 2.所有的数据都可以用字节表示 2.字节输入流 InputStream:所有字节输入流的抽象父类 FileInputStream 文件输入流 ByteArrayInputStream 字节数组输入流 ObjectInputStream 对象输入流 FilterInputStream 过滤输入流 BufferedInputStream 缓冲字节输入流 DataInputStream 基本数据类型输入流 FileInputStream 文件字节输入流 构造方法 FileInputStream(File f,String name) FileInputStream(String parent,String name) FileInputStream(String name) 常用方法: int len = available() 获得流中的估计剩余字节数 int t = read(); 读取流中的字节,如果是-1,说明读取到文件末尾 返回值表示读取到的字节数,如果为-1,表示到流的末尾 skip

IO流

北城以北 提交于 2020-01-17 13:32:45
一、概念介绍 1、什么是IO流? I: InputStream,输入,读取,从硬盘到内存,读进来 O: Output,输出,写入,从内存到硬盘,写出去 2、IO流的分类 (1)按照流的方向: 输入流:字节输入流/字符输入流 输出流:字节输出流/字符输出流 (2)按照流中的内容 字节流:计算机中的一切都是字节,可以一次操作一个/多个字节,可以操作任意类型的文件。 字符流:只能操作纯文本文件,用记事本打开,可以看得懂的文件。 (PS:.java、.txt、.html、.css 是纯文本文件;.doc、.xls不是纯文本文件) 3、文件的续写与换行 (1)文件的续写 构造方法: FileOutputStream(File path, boolean append) FileOutputStream(String path, boolean append) 其中, 参数一:String/File类型的文件路径; 参数二:boolean append(true就是追加写入,继续写;false就是重新写,覆盖写。不写默认为false)。 (2)换行 \r\n 适用于Windows系统,每行结尾是“回车+换行”; \n 适用于Unix系统里,每行结尾只有“换行”; \r 适用于Mac系统,每行结尾是“回车”,即 “\r” 。从 Mac OS X 开始与Linux统一。 二、IO流 1、字节流 1

Java实现文件写入——IO流(输入输出流详解)

耗尽温柔 提交于 2020-01-08 17:58:03
输入输出的重要性: 输入和输出功能是Java对程序处理数据能力的提高,Java以流的形式处理数据。流是一组有序的数据序列,根据操作的类型,分为输入流和输出流。 程序从输入流读取数据,向输出流写入数据。Java是面向对象的程序语言,每一个数据流都是一个对象,它们提供了各种支持“读入”与“写入”操作的流类。 Java的输入输出功能来自java.io 包中的InputStream类、OutputStream类、Reader类和Writer类以及继承它们的各种子类。 (一)解析文件处理的奥秘 1、学习使用文件类 : File类 File类用于封装系统的文件和目录的相关信息。在该类中定义了一些与平台无关的方法来操作文件。例如文件的大小、修改时间、文件路径等。 创建 File 对象可以通过下面3种方式: 方法1: 方法2: 方法3: new File(String pathName) File file = new File(“E://1.txt”) new File(String parent , String child) parent :父抽象路径名;child:子路径名字符串 2、如何获取文件信息 File 类是对文件和文件夹的抽象,包含了对文件和文件夹的多种属性和操作方法。File类的常用方法如下表: 返回 方法 说明 String getName 获取文件名称 String

IO流之OutputStream:字节输出流

丶灬走出姿态 提交于 2020-01-02 19:15:51
java.io.OutputStream:字节输出流 此抽象类是表示输出字节流的所有类的超类。 定义了一些子类共性的成员方法: public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。 public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。 public abstract void write(int b) :将指定的字节输出流。 java.io.FileOutputStream extends OutputStream FileOutputStream:文件字节输出流 作用:把内存中的数据写入到硬盘的文件中 构造方法: * FileOutputStream(String name)创建一个向具有指定名称的文件中写入数据的输出文件流。 * FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 参数:写入数据的目的 String name:目的地是一个文件的路径 File file

I/O流——字节流

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-30 22:32:22
流的概念 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以使文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。 流的分类 ① 流按其流向分为“输入流”和“输出流”。 ② 流按数据传输单位分为“字节流”和“字符流”。 a) “字节流”用来读写8位二进制的字节。 b) “字符流”用来读写16位二进制字符。 ③ 流按功能分为“节点流”和“过滤流”。 a) “节点流”用于直接操作目标设备的流。例如:磁盘或一块内存区域。 b) “过滤流”是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。 字节流 字节流类用于向字节流读取8位二进制的字节。一般地,字节流主要用于读写诸如图像或声音等二进制数据。 字节流类以InputStream和OutputStream为顶层类。它们都是抽象类。 一、InputStream ① InputStream是定义了字节输入流的抽象类。 ② InputStream中定义的方法 a) public abstract int read() b) public int read(byte[] b) c) public int read(byte[] b,int off,int len) d) public long

《七》随机访问文件流

纵饮孤独 提交于 2019-12-30 22:29:19
1、什么是 随机访问文件流 RandomAccessFile?   该类的实例支持读取和写入随机访问文件。 随机访问文件的行为类似于存储在文件系统中的大量字节。 有一种游标,或索引到隐含的数组,称为文件指针 ; 输入操作读取从文件指针开始的字节,并使文件指针超过读取的字节。 如果在读/写模式下创建随机访问文件,则输出操作也可用; 输出操作从文件指针开始写入字节,并将文件指针提前到写入的字节。 写入隐式数组的当前端的输出操作会导致扩展数组。 文件指针可以通过读取getFilePointer方法和由设置seek方法。   通俗来讲:我们以前讲的 IO 字节流,包装流等都是按照文件内容的顺序来读取和写入的。而这个随机访问文件流我们可以再文件的任意地方写入数据,也可以读取任意地方的字节。 我们查看 底层源码,可以看到: ? 1 public class RandomAccessFile implements DataOutput, DataInput, Closeable {   实现了 DataOutput类,DataInput类,那么这两个类是什么呢? 2、数据流:DataOutput,DataInput   ①、DataOutput:提供将数据从任何Java基本类型转换为一系列字节,并将这些字节写入二进制流。 还有一种将 String 转换为 modified UTF-8 格式

IO流

别等时光非礼了梦想. 提交于 2019-12-30 04:53:21
IO:输入/输出(Input/Output) 流 是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输 IO流就是用来处理设备间数据传输问题的。常见的应用:文件复制;文件上传;文件下载 使用场景 如果操作的是纯文本文件,优先使用字符流 如果操作的是图片、视频、音频等二进制文件。优先使用字节流 如果不确定文件类型,优先使用字节流。字节流是万能的流 字节流写数据 字节流抽象基类 InputStream:这个抽象类是表示字节输入流的所有类的超类 OutputStream:这个抽象类是表示字节输出流的所有类的超类 子类名特点:子类名称都是以其父类名作为子类名的后缀 字节输出流 FileOutputStream(String name):创建文件输出流以指定的名称写入文件 使用字节输出流写数据的步骤 创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件) 调用字节输出流对象的写数据方法 释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源) 字节流写数据的三种方式 使用字符串的getBytes()方法 得到一个字节数组 字节流写数据的两个小问题 字节流写数据如何实现换行 windows:\r\n linux:\n mac:\r 字节流写数据如何实现追加写入 public FileOutputStream