您的位置:首页 > 编程语言 > Java开发

Java中的输入输出总结

2016-11-29 16:03 225 查看

Java中的输入输出总结

标签(空格分隔): java

参考:Java在线中文文档

Java中的输入输出总结
输入输出体系介绍

基本流的介绍

字节输入输出系列字节IO
字节输入输出
InputStream

OutputStream

字节标准输入输出
字节标准输入流

字节标准输出流

字节文件输入输出
FileInputStream

FileOutputStream

字节过滤输入输出
DataInputStream

DataOutputStream

字符输入输出系列字符IO
字符输入输出
Reader

Writer

字符标准输出

字符缓冲输入输出
BufferedReader

BufferedWriter

字符文件输入输出
FileReader

FileWriter

字符串输入输出
StringReader

StringWriter

IO这块的类,接口什么的实在是太多了,一直没有好好的理清过,下面花点时间来深入的掌握一下。原理还要慢慢地梳理。

输入输出体系介绍

什么是输入输出处理(IO)

包括对控制台,内存,文件,图形图像,网络和数据库的读写等。在Java语言中,java.io包就提供了

很多完成输入输出处理功能。

什么是流?

流是一种有序的字节源或目的,当程序需要读取数据时就要打开一个通向数据源的流;而当程序需要

写入数据的时候就会打开一个通向目的地的流,数据就好像在管道中流动一样。

流的分类

将流按三种方式分类:输入流和输出流,字节流和字符流,以及从一个特定地方读写的结点流和连接已经存在的流的过滤流。这种分类方式是相互重叠的

输入流和输出流

字节流和字符流

从一个特定地方读写的结点流和连接已经存在的流的过滤流

基本流的介绍

基本流一般是指

InputStream

OutputStream

Reader

Writer

这四个抽象类表示的流,其他流均是他们派生出来的子类。其中
InputStream
OutputStream
是处理8位的字节流数据,
Reader
Writer
是处理16位的字符流数据。注意的是,字节流和字符流可以相互之间进行转换,使用的就是转换器
InputStreamReader
OutputStreamWriter
InputStreamReader
将字节流
InputStream
转换为
Reader
的字符流。同理
OutputStreamWriter
OutputStream
字节流转换为
Writer
的字符流。

过滤流
FilterInputStream
FileterOutputStream
继承基本流,并实现了过滤接口
DataInput
DataOutput


对象流
ObjectInputStream
ObjectOutputStream
也继承基本流,并实现了对象接口
ObjectInput
ObjectOutput


随机文件
RandomAccessFile
也实现了过滤接口,目的就是为了简化读写手续,统一数据读写方法。

文件流完成对磁盘文件的读写,而文件类File主要是管理文件或者文件夹的属性

字节输入输出系列(字节IO)

字节输入输出,以InputStream为代表的输入和以OutputStream为代表的输出,它们和自己的子类一起构成了字节输入输出体系。

字节输入输出

InputStream

这个类是一个抽象类,为所有字节输入类的父类,其方法都是通过子类对象来调用的,主要方法有



OutputStream

这个类是抽象类,是所有字节输出类的父类,其方法都是通过子类对象来调用



字节标准输入输出

字节标准输入流

System.in就是字节标准输入流的对象。主要接收控制台的输入,并提供read()方法读取数据。可以使用InputStream类的所有方法。这个对象有两种使用方式

使用Scanner扫描输入流对象,实现从控制台输入

Scanner in = new Scanner(System.in);


使用InputStreamReader将System.in转换成字符流,再进行下一步操作。或者再用BufferedReader包装一下。

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));


字节标准输出流

System.out就是标准输出流PrintStream的一个对象,主要完成数据的格式化输出和在控制台中输出各种数据类型结果。PrintStream是OutputStream的子类,因此System.out可以使用OutputStream的所有方法。自身的format()和printf()方法很有趣。,。,。

(没有想到一直使用这个东西,居然原理在今天被发现了,System.out是一个PrintStream对象,println()是该对象调用的一个方法,。,。,。

字节文件输入输出

FileInputStream

该类是InputStream的子类,用于完成读取文件的字节值功能,还可以读取如图像数据之类的原始数据流。

常用的构造方法:

FileInputStream(File file):通过已经存在的File类对象进行构造

FileInputStream(String filename):直接使用文件名进行构造

FileOutputStream

该类是OutputStream的子类,用于将数据写入字节文件输出流,也可写入图像数据之类道德原始字节流。

常用的构造方法:

- FileOutputStream(File file):通过已经存在File类对象进行构造

- FileOutputStream(String name):通过名字进行构造

字节过滤输入输出

过滤流的作用是能够在读写数据的同时对数据进行处理,并且提供同步机制,使得某一个时刻只有一个线程访问这个输入输出流,防止多个线程同时对同一个输入输出流进行操作带来的坏结果。使用时必须把过滤流与某个具体的输入输出流相连接。

通常的做法是在构造方法的参数中指定要连接的输入输出流。

过滤流的父类是FileInputStream和FilterOutputStream,最常用的是他们的子类DataInputStream和DataOutputStream,用于完成平台无关的字节过滤输入输出处理。

DataInputStream

DataOutputStream

字符输入输出系列(字符IO)

输入输出两大分支,以Reader为父类的字符输入,以Writer为父类的字符输出。它们与各自的子类共同构成了字符输入输出体系

字符输入输出

Reader

是一个用于读取字符类的抽象类,为所有字符输入类的父类,其方法都是通过子类对象来调用的。



Writer

是一个用于写入字符流的抽象类,为所有输出字符类的父类,其方法都是通过子类对象来调用的。



字符标准输出

,。,。,这里没有字符标准输入

PrintWriter,主要完成字符标准输出流的文本格式化

常用构造方法:

由文件名构造字符标准输出流对象

PrintWriter pw=new PrintWriter("data.txt");


由字节输出流构造字符标准输出流对象

PrintWriter pw=new PrintWriter(System.out);


由字符标准输出流对象构造新的字符标准输出流对象

PrintWriter pw1=new PrintWriter(pw);


字符缓冲输入输出

BufferedReader

从字符输入流中读取文本并缓冲各个字符,以便提供关于字符,数组和文本行的高效读取方式,还可以改变缓冲区的大小。

常用的构造方法:

BufferedReader br=new BufferedReader(Reader in);


普通方法常用就是:String readLine()读取一行字符串,并去掉回车换行符。

BufferedWriter

将文本写入字符输出流并缓冲各个字符,以提供单个字符,数组和字符串的高效写入方式,缓冲区的大小可以改变。常用的构造方法是BufferedWriter(Writer out),常用的方法是:void newLine(),用于写入一个回车符。

字符文件输入输出

FileReader类和FileWriter类。

FileReader

用来读取字符文件;

常用构造方法:

FileReader(File file)

FileReader(String filename)

FileWriter

用来写入字符文件。

构造方法:



字符串输入输出

StringReader

使用字符串输入流读取一个字符串,构造方法:

StringReader(String string);

StringWriter

通过字符流的字符串缓冲区的输出来构造字符串,构造方法:

StringWriter()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java