java输入输出

来源:互联网 发布:华为西研所云计算部门 编辑:程序博客网 时间:2024/04/19 13:02

 java程序通过流来完成输入、输出。流是生产或消费信息的抽象。流通过java的输入输出系统与物理设备链接。尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式。这样,相同的输入输出类和方法用于所有类型的外部设备。这意味着一个输入流可以抽象多种类型的输入;从磁盘文件、键盘或者网络套接字。同样,一个输出流可以输出到控制台、磁盘文件或相连的网络。
字节流和字符流
字节流(byte stream)为处理字节的输入和输出提供了方便的方法。例如,使用字节流读取书写二进制数据。字符流(character stream)为字符的输入和输出处理提供了方便。他们采用了统一的编码标准,因而可以国际化。
字节流:
在顶层有两个抽象类。InputStream和OutputSteam.每个抽象类都有多个具体的子类,这些子类对不同的外设进行处理,例如磁盘文件,网络链接,甚至是内存缓冲区。
BufferedInputStream    缓冲输入流
BufferedOutputStream   缓冲输出流
ByteArrayInputStream   从字节数组读取的输入流
ByteArrayOutputStream   向字节数组写入的输出流
DataInputStream    包含读取java标准数据类型的方法的输入流
DataOutputStream    包含编写java标准数据类型的方法的输出流
FileInputStream    读取文件的输入流
FileOutputStream    写文件的输出流
FilterInputStream    实现InputStream
FilterOutputStream    实现OutputStream
PipedInputStream    输入管道
PipedOutputStream    输出管道
PrintStream     包含print和println的输出流
PushbackInputStream    支持向一个输入流返回一个字节的单字节        的“unget”的输入流
RandomAcessFile    支持随机文件输入、输出
SequenceInputStream    多个顺序读取的输入流组成的输入流 

字符流  13188949519周
顶层有2个抽象类,Reader,Writer.这些抽象类处理统一编码的字符流。
BufferReader   缓冲输入字符流
BufferWriter   缓冲输出字符流
CharArrayReader  从字符数组读取数据的输入流
CharArrayWriter  向字符数组写数据的输出流
FileReader   读取文件的输入流
FileWriter   写文件的输出流
FilterReader   过滤读
FilterWriter   过滤写
InputStreamReader  把字节转换成字符的输入流
LineNumberReader  计算行数的输入流
OutputStreamReader  把字符转换成字节的输出流
PipedReader   输入管道
PipedWriter   输出管道
PrintWriter   包含print和println的输出流
PushbackWriter   允许字符返回到输入流的输入流
Reader    描述字符流输入的抽象类
StringReader   读取字符串的输入流
StringWriter   写字符串的抽象类
Writer    描述字符流输出的抽象类

读取控制台输入:字符流
java中,控制台输入由从system.in读取数据来完成。为获得属于控制台的字符流,在BufferReader对象中包装System.in。BufferReader支持缓冲输入流。
BufferReader(Reader inputReader)
这里,inputReader是链接被创建的BufferReader实例的流。Reader是一个抽象类。它的一个具体的子类是InputStreamReader,该子类把字节流转换为字符流。为获得链接System.in的一个InputStreamReader的对象。
InputStreamReader(InputStream inputStream)
因为System.in引用了InputStream类型的对象,它可以用于inputStream。
BufferReader br = new BufferReader(new InputStreamReader(System.in)).
读取字符:
int read() throw IOException ;
该方法每次执行都从输入流中读取一个字符然后以整型返回。当遇到流的末尾时,它返回-1。

对文件的读取
在java中,所有文件都是字节形式的。java提供从文件读写字节的方法。而且java允许在字符形式的对象中使用字节文件流。
FileInputStream(String filename) throws FileNoFoundException;
FileOutputStream(String filename) throws FileNoFoundException;
当你对文件的操作结束后,需要调用close()来关闭文件。
void close() throws IOException;
为读文件,可以使用在FileInputStream中定义的read()方法。
int read() throws IOException;
该方法每次被调用,它仅从文件中读取一个字节并将该字节以整数的形式返回。

原创粉丝点击