io流

Io文件流操作-流

可紊 提交于 2020-02-22 14:59:33
1.1读写字节 抽象类InputStream和OutputStream 各自拥有一个抽象方法 abstract void read()/write() ,在执行时都会发生 阻塞 ,直至字节被读入或者写出,并且在完成读写操作之后,都要调用 close()方法 来关闭流,以释放有限的系统资源。 如果不想发生阻塞,可以通过available()方法来检查当前读入的字节数量来实现: int bytesavaliable = in . avaliable ( ) ; if ( bytesavaliable > 0 ) { byte [ ] data = new byte [ bytesavaliable ] ; in . read ( data ) ; } read()方法 特点:读入一个字节并返回读入的字节,或者在遇到输入源结尾时返回-1;因此在设计具体的输入流时,必须覆盖该方法。 除此之外,InputStream类还拥有很多非抽象方法: long skip(long n) ,在输入流中跳过n个字节,并返回实际读入的字节数 void mark(int readlimit) ,在输入流的当前位置打一个标记(并不是所有流都支持这一操作) void reset() ,返回到最后一个标记,随后对 read()方法 的调用将重新读入这些字节。如果当前没有标记,则这个流不被重置 boolean

Java IO流 - BufferedReader

对着背影说爱祢 提交于 2020-02-21 12:49:56
java.lang.Object └ java.io.Reader └ java.io.BufferedReader 用字符输入流读取文本, 缓冲字符 其构造方法 BufferedReader(Reader in) 和 BufferedReader(Reader in, int size) 均需要一个 Reader 对象 而 Reader 是一个抽象类, 所以需要传入 Reader 的子类实例, 比如 BufferedReader br = new BufferedReader(new FileReader(String name)); 常用方法: * readLine() 返回 String , 从字符缓冲流中读入一行字符, 不会读取行尾的换行符 InputStreamReader 是一个 转换流 , 可以把 字节流 转换成 字符流 , 用法如 BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(String name))); 利用 BufferReader 接收键盘输入 BufferReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine();

JavaSE学习笔记-Day18~19

£可爱£侵袭症+ 提交于 2020-02-20 04:45:39
学校的网课陆陆续续在准备阶段了,所以自己的学习就得先放在一边,学有余力的时候才能宠幸一下,唉,太快了… 这两天学完IO流的相关类。 InputStream/OutputStream(字节流)和Reader/writer(字符流)类是所有IO流类的抽象父类,我们有必要简单了解一下。 一. InputStream和FileInputStream InputSteam是一个抽象类,它不可以实例化,它是表示字节输入流的所有类的超类。 继承自InputSteam的流都是用于向程序中输入数据( 读 ),且数据的单位为字节(英文Byte,简写为B)。 常用方法: FileInputStream通过 字节的方式 读取文件,适合读取所有类型的文件(图像、视频、文本文件等)。FileInputStream的常用方法和InputStream中一模一样,具体实现代码就不了解了,水平不够。 测试一下: package cn . zjb . test ; import java . io . FileInputStream ; import java . io . IOException ; /** * 测试文件输入字节流 * @author张坚波 * */ public class TestInputStream { private static FileInputStream in ; private

java io流

南楼画角 提交于 2020-02-19 07:48:05
先讲一下流的概念: 在程序中,所有的数据都是以流的形式进行传输和保存的。程序需要数据的时候就用输入流来读取数据,而程序需要保存一些数据的时候,就使用输出流来完成的。 程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。 下面,先总体预览一下java中流的设计: 从这个图上很清楚的看出来,java中把流分为字节流和字符流两个类型。而每一种类型的流分为输入流和输出流这俩大操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)。 java中提供了专用于输入输出功能的包Java.io,其中包括: InputStream,OutputStream,Reader,Writer InputStream 和OutputStream,两个是为字节流设计的,主要用来处理字节或二进制对象, Reader和 Writer.两个是为字符流(一个字符占两个字节)设计的,主要用来处理字符或字符串. 字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组。所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件

Java IO流

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

2019-05-30 Java学习日记 day20 IO流

荒凉一梦 提交于 2020-02-17 17:04:45
IO流 概念:   IO流用来处理设备之间的数据传输   Java对数据的操作是通过流的方式   Java用于操作流的类都在IO包中   流按流向分为两种:输入流,输出流   流按流操作类型分为两种:     字节流:字节流可以操作任何数据,因在计算机任何数据都是以字节的形式存储的     字符流:字符流只能操作纯字符数据,比较方便 IO流常用父类:   字节流的抽象父类     InputStream     OutputStream   字符类的抽象方法:     Reader     Writer IO程序书写   使用前,导入IO包中的类   使用时,进行IO异常处理   使用后,释放资源 InputStream import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class demo1_FileInputStraem { public static void main(String[] args) throws IOException { //demo1(); FileInputStream fis =new FileInputStream("xxx.txt"); int a; while ((a=fis.read(

iO流

拜拜、爱过 提交于 2020-02-17 16:06:09
IO流:    数据在两设备间的传输称为流,,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 1、但凡是对数据的操作,Java都是通过流的方式来操作的。 2、程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。 3、IO流可以做到数据的持久化,但是IO流本质上是用来处理本地文件系统以及不同设备之间的数据传输。 IO流结构如图下: IO流的分类:    IO流是根据数据类型来分的,分为字节流和字符流。 字节流:一般拿来处理图片视频等文件,同时字节流也是万能流。(主要用来处理字节或二进制对象) 字符流:主要用来处理字符流,还有列如 xml、json 、html 、TXT等文件。 注: 只要是处理纯文本数据,就优先考虑使用字符流,除此之外都使用字节流。 根据数据流来分为输入流和输出流。 字节输入流: 输入流只能进行读操作,而不能向其写入数据。 InputStream 是所有的输入字节流的父类,它是一个抽象类。 FileInputStream 的构造方法 FileInputStream(File file) 创建一个从file读取数据的输入流 FileInputStream(String name) 创建一个从name文件读取数据的输入流 字节输出流: 输出流这只能进行写操作,而不能向其读取数据。 OutputStream

IO流输入输出流,字符字节流

时间秒杀一切 提交于 2020-02-17 16:05:29
一、流 1.流的概念   流是一组有顺序的,有起点和终点的 字节集合,是对数据传输的总称或抽象 。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。 2.流的分类   根据处理数据类型的不同分为: 字符流和字节流 ,字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。   根据数据流向不同分为: 输入流和输出流 3.字符流和字节流 3.1 字符流的由来:   因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换。 3.2 字节流和字符流的区别: (1)读写单位不同: 字节流以字节(8bit)为单位,字符流以字符为单位 ,根据码表映射字符,一次可能读多个字节。 (2)处理对象不同: 字节流能处理所有类型的数据(如图片、avi等 ),而 字符流只能处理字符类型的数据 。 (3)字节流在操作的时候本身是不会用到缓冲区的,是文件本身的直接操作的;而 字符流在操作的时候下后是会用到缓冲区的,是通过缓冲区来操作文件 , 我们将在下面验证这一点。 结论:

IO流—字符流

廉价感情. 提交于 2020-02-17 15:31:42
1.字符流 我们操作的文件中有中文字符,需要对中文字符做出处理,这时用到了字符流 字符编码表 计算机底层数据存储的都是二进制数据,而我们生活中的各种各样的数据 , 老美他们就把每一个字符和一个整数对应起来,就形成了一张编码表,老美他们的编码表就是 ASCII 表。 编码表:其实就是生活中字符和计算机二进制的对应关系表。 1 、 ascii : 一个字节中的 7 位就可以表示。对应的字节都是正数。 0-xxxxxxx 2 、 iso-8859-1: 拉丁码表 latin ,用了一个字节用的 8 位。 1-xxxxxxx 负数。 3 、 GB2312: 简体中文码表。包含 6000-7000 中文和符号。用两个字节表示。两个字节 第一个字节是负数 , 第二个字节可能是正数 GBK: 目前最常用的中文码表, 2 万的中文和符号。用两个字节表示,其中的一部分文字,第一个字节开头是 1 ,第二字节开头是 0 GB18030 :最新的中文码表,目前还没有正式使用。 1、unicode :国际标准码表 : 无论是什么文字,都用两个字节存储。 Java中的char类型用的就是这个码表。char c = 'a';占两个字节。 Java中的字符串是按照系统默认码表来解析的。简体中文版 字符串默认的码表是GBK。 5 、 UTF-8: 基于 unicode ,一个字节就可以存储数据,不要用两个字节存储

Java 基础 IO流

拜拜、爱过 提交于 2020-02-17 14:31:48
一,前言   在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据。现在我们就要开始给文件中写数据,或者读取文件中的数据。 二,字节流   2.1 字节输出流     OutputStream此抽象类,是表示输出字节流的所有类的超类。操作的数据都是字节,定义了输出字节流的基本共性功能方法。     输出流中定义都是写write方法,如下图:         FileOutputStream类       OutputStream有很多子类,其中子类FileOutputStream可用来写入数据到文件。     FileOutputStream类,即文件输出流,是用于将数据写入 File 的输出流。      FileOutputStream类写入数据到文件中     将数据写到文件中,代码演示: public class FileOutputStreamDemo { public static void main(String[] args) throws IOException { //需求:将数据写入到文件中。 //创建存储数据的文件。 File file = new File("c:\\file.txt"); //创建一个用于操作文件的字节输出流对象。一创建就必须明确数据存储目的地。 //输出流目的是文件,会自动创建。如果文件存在,则覆盖。