JAVA IO流

IO流种类


一.字节流:字节流处理单元为8位的字节,字节流可以适用于任何类型的对象,包括文本和二进制,用于处理磁盘,内存,键盘等设备上的数据。字节流由InputStream和OutputStream两个抽象类组成。

InputStream子类图:

InputStream是所有子类的父类。 

InputStream主要子类功能
功能

ByteArrayInputStream

包含一个内部缓冲区,该缓冲区包含从流中读取的字节
PipedInputStream 管道输入流连接管道输出流,并向管道输出流写入数据字节
FileInputStream 从文件中获取字节
SequenceInputStream 从第一个输入流到最后一个输入流依次读取
FilterInputStream 拥有其他一些输入流,将这些流作用为其数据源

OutputStream子类图:

OutputStream是所有输出流的父类

OutputStream主要子类功能
功能
ByteArrayOutputSteam 实现一个输出流,并将数据写入一个byte数组
FileOutStream 将数据写入文件
PipeOutptStream 管理输出流连接到管道输入流,传输数据
FilterOutputStream 过滤输出流的父类

二.字符流:字符流处理单元为16位的unicode字符,字符流通常处理文本文件,由Reader处理输入字符和Writer处理输出字符两个抽象类组成

Reader抽象类:

Reader的主要子类
功能
BufferedReader 从字符输入流中读取文本
InputStreamReader 字节流通向字符流的桥梁,使用指定的charset读取字符并解码为字符
CharArrayReader 实现一个可用作字符输入流的字符缓冲区
FileReader 用来读取字符文件
FilterReader 用于读取已经过滤的字符流的抽象类
RushbackReader 允许将字符推回字符流reader
PipedReader 从管道中读取字符
String 一个字符串的字符流

 Writer抽象类:

Writer的主要子类
功能
BufferedWriter 将文本写入字符输出流
CharArrayWriter 实现一个可用于Writer的字符缓冲区
FilterWriter 用于写入已经过滤的字符流的抽象类
OutputWriter 字符流通向字节流的桥梁,可用指定的charset将要写入流中的字符编码为字节
PipedWriter 向管道中写入字符
PrintWriter 向文本输出流打印格式化对象
StringWriter 一个字符流收集其在字符串缓冲区中的输出,然后建立一个字符串


标准输入输出流

标准输入输出流为java.lang.system包,主要分为三种:

(1)Systeam.in:字节输入流类InputStream的对象,代表标准输入,其中read()方法从键盘接受数据

(2)System.out:输出流OutputStream的对象,代表标准输出,有print()和println();两个方法

(3)System.err:标准错误信息输出流

注:标准输入输出还有java.util.Scanner,javaj.io.Console,java.utilFormatter类


采用System.in读取数据:

public class IOTest {
    public static void main(String[] args) throws IOException {
        System.out.println("请输入:");
        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
        String string;
        while(( string=in.readLine()).length()!=0){
            System.out.println(string);
            System.exit(0);
        }
    }
}

实现从键盘读取数据调用了System.in,InputStream,BufferedReader类:System.in标准输入,InputStream实现字节到字符的转换,最后BufferedReader将字符送进缓冲区


java.util.Scanner类:可以对字符串和基本数据类型进行分析,用于扫描输入文本信息,在使用Scanner前要使用该类创建一个对象:Scanner sc = new Scanner(System.in)

public class IOTest {
    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入文本:");
        String string=sc.next();
       System.out.println(string);
    }
}

Scanner方法:

public boolean nextBoolean();    
public short nextShort();   
public int nextInt();
public double nextDouble();
public float nextFloat();
public String next();

io.Console类:适用与输入安全密码

Java.io.Console主要方法
方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MYUNB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值