在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
今天我们来梳理一下Java入门基础知识——流。本文将从流的定义、分类、标准的输入/输出流以及I/O流按类型分类四部分来介绍,让大家全面系统的了解流概念。感兴趣的同学就赶紧看下去吧!
一、Java流定义。
Java中的流是一个很抽象的概念,当程序需要读取一个文件时,就会开启一个通向数据源(被读取的文件)的流。流是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。
二、Java中流的分类
1、字节流(Byte Stream)
InputStream(抽象类)与OutputStream(抽象类)所有字节流的顶级父类,这类流以字节(Byte)为基本处理单位
2、字符流(Character Stream)
Reader(抽象类)与Writer(抽象类)所有字符流的顶级父类,这类流以16位的Unicode表示的字符基本单位。
三、标准的输入/输出流
1、标准的输出流 system.out
向标准输出设备输出数据,其数据类型为PrintStream
常用方法:void print(参数) 和 void println(参数)
system.out通过调用println方法输出参数并换行,调用print方法输出不换行
2、标准的输入流system.in
向标准的输入设备输入数据(一般为键盘),其数据类型为InputStream
常用方法:int read() 返回ASCII码,返回值为-1则没有读取任何字节,读取工作结束
int read(byte b[]) :读入多个字节到缓冲区b中,返回值是读入的字节数
package cn.itcase.stream;
import java.io.IOException;
public class Demo {
//从键盘输入 输入什么 打印什么
public static void main(String[] args) {
int b;
try {
System.out.println("please Input");
while((b=System.in.read()) !=-1){
System.out.println((char)b);
}
} catch (IOException e) {
System.out.println(e.toString());
}
}
}
3、标准错误流
System.err 标准错误流,其数据类型为PrintStream。
四、I/O流按类型分类
1、Memory
从/向内存数组读写数据:CharArrayReader,CharArrayWriter,ByteArrayInputStream,ByteArrayOutputStream
从/向内存字符串读写数据:StringReader,StringWriter,StringBufferInputStream,StringBufferOutStream
2、Pipe管道
实现管道的输入和输出(进程间通信):PipedReader,PipeWriter,PipedInputStream,PipedOutputStream
3、File文件流
对文件进行读写操作:FileReader,FileWriter,FileInputStream,FileOutputStream
4、ObjectSerialization
对象输入,输出:ObjectInputStream,ObjectOutputStream
5、DataConversion数据流
按基本数据类型读,写(处理的数据是Java的基本数据类型):DataInputStream,DateOutputStream
6、Printing
包含方便的打印方法:PrintWriter,PrintStream
7、Buffering 缓冲区
在读入,写出时 对数据进行缓存,以减少I/O的次数:BufferedReader,BufferedWriter,BufferedIputStream,BuffereOutputStream
8、Filtering 滤流
在数据进行读写时进行过滤:FilterReader,FilterWriter,FilerInputStream,FilterOutputStream
9、Concatenation
合并输入并把多个输入流连成一个输入流:SequenceInputStream
10、Conunting
在读入数据时对行记数:LineNumberReader,LineNumberInputStream
11、Peeking Ahead
通过通过缓存机制进行预读:PushBackReader,PushBackInputStream
12、Converting between Bytes and Characters
按照一定的编码/解码标准将字节流转换为字符流,或反向转换(Stream到Reader,Writer的转换类):InputStreamReader,OutputStreamWriter
以上就是关于Java入门基础流概念的学习内容,大家都弄清楚了吗?
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java基础 用 Java怎么实现一种排序?
用 JAVA怎么实现一种排序,冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
6813
2019-06-05 18:02:46
自学Java可以找到工作吗?要学到什么程度?
Java作为备受程序员喜爱的编程语言,在各行各业都被广泛使用,导致当下越来越来多的自学者想通过自己的努力,自学Java从而找到一份高薪可以改变自己职业前途的工作。那么自学Java可以找到工作吗?要学到什么程度?其实对大多数学习者来说,自学Java都不是一个最好的选择,一方面是因为Java语言自身学习的难度比较高,另一方面是自学效率低,对自学者能力要求高。
6079
2019-10-26 11:33:24
Java开发游戏抽奖算法有哪些?
Java开发游戏抽奖算法有哪些?抽奖算法根据需求而定,游戏抽奖算法在指定奖品的集合中,每个奖品根据对对应概率进行抽取。Java开发游戏抽奖算法主要有随机数一一对应、离散法Alias算法等
7293
2020-02-19 16:26:26
GC垃圾回收学习笔记整理
只要掌握了GC垃圾回收的相关知识点,程序员在工作中就不用担心内存管理了,因为垃圾收集器会自动进行管理。本文为大家整理了GC垃圾回收的学习笔记,主要内容包括了判断回收条件,虚拟机频繁full GC的解决对策以及经典的垃圾回收算法。大家要是对GC垃圾回收的相关学习学习感兴趣,就接着看下去吧!
5065
2020-03-26 22:20:37
MySQL数据库as和distinct关键字怎么用?代码怎么写?
MySQL数据库as和distinct关键字怎么用?代码怎么写?使用SQL语句显示结果时,在屏幕显示的字段名不具备良好的可读性,我们可以使用 as 给字段起一个别名。在很多重复数据想要对其中重复数据行进行去重操作可以使用 distinct。
3267
2022-01-12 16:13:57