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

InputStream是所有子类的父类。
| 类 | 功能 |
| ByteArrayInputStream |
包含一个内部缓冲区,该缓冲区包含从流中读取的字节 |
| PipedInputStream | 管道输入流连接管道输出流,并向管道输出流写入数据字节 |
| FileInputStream | 从文件中获取字节 |
| SequenceInputStream | 从第一个输入流到最后一个输入流依次读取 |
| FilterInputStream | 拥有其他一些输入流,将这些流作用为其数据源 |
OutputStream子类图:

OutputStream是所有输出流的父类
| 类 | 功能 |
| ByteArrayOutputSteam | 实现一个输出流,并将数据写入一个byte数组 |
| FileOutStream | 将数据写入文件 |
| PipeOutptStream | 管理输出流连接到管道输入流,传输数据 |
| FilterOutputStream | 过滤输出流的父类 |
二.字符流:字符流处理单元为16位的unicode字符,字符流通常处理文本文件,由Reader处理输入字符和Writer处理输出字符两个抽象类组成
Reader抽象类:

| 类 | 功能 |
| BufferedReader | 从字符输入流中读取文本 |
| InputStreamReader | 字节流通向字符流的桥梁,使用指定的charset读取字符并解码为字符 |
| CharArrayReader | 实现一个可用作字符输入流的字符缓冲区 |
| FileReader | 用来读取字符文件 |
| FilterReader | 用于读取已经过滤的字符流的抽象类 |
| RushbackReader | 允许将字符推回字符流reader |
| PipedReader | 从管道中读取字符 |
| String | 一个字符串的字符流 |
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类:适用与输入安全密码
| 方法 |

最低0.47元/天 解锁文章
1938

被折叠的 条评论
为什么被折叠?



