java中IO流小解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中IO流小解相关的知识,希望对你有一定的参考价值。

下面这张图列出了java中一些处理流:

技术分享

java中根据操作对象的不同可以分为:字节流和字符流。

 

首先我们先表示一下什么叫节点流和处理流:

节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader 
 
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。
如BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。

 

java字节流

  InputStream和OutputStream是java字节流中输入输出流的祖先。

  FileInputStream和FileOutputStream:

    都为节点流,通过文件的路径名来构造相应的流,如下:

FileInputStream infile = new FileInputStream("xxx.dat");
FileOutputStream outfile = new FileOutputStream("xxx.dat");

  BufferedInputStream和BufferedOutputStream它们是处理流,其作用是提高输入输出的效率。

 

java字符流

  字符流主要是用来处理字符,对应的输入和输出分别称为readers和writers。

  InputStreamReader和OutputStreamWriter:

    在构造这两个类对应的流时,它们会自动进行转换,将平台缺省的编码集编码的字节转换为Unicode字符。

  BufferedReader和BufferedWriter:

    这两个类对应的流使用了缓冲,提高输入输出的效率。这两个也是处理流,常用来对InputStreamReader和OutputStreamWriter进行处理。如:

BufferedReader in = new BufferedReader( new InputStreamReader(new File("xxx")) );

 

  对BufferedReader类,该类的readLine()方法能一次从流中读入一行,但对于BufferedWriter类,就没有一次写一行的方法,所以若要向流中一次写一行,可用PrintWriter类将原来的流改造成新的打印流,PrintWriter类有一个方法println(),能一次输出一行。如: 

PrintWriter out = new PrintWriter(new BufferedWriter( new FileWriter("xxx")));
out.println("Hello World!");
out.close();

 

以上是关于java中IO流小解的主要内容,如果未能解决你的问题,请参考以下文章

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

Java中,static代码块创建的IO流需要手动关闭吗?

JAVA IO流相关代码(Serializable接口,管道流PipedInputStream类,RandomAccessFile类相关代码)

JAVA IO流相关代码(Serializable接口,管道流PipedInputStream类,RandomAccessFile类相关代码)

关于java中io流的关闭问题,部分代码,这种情况用不用关闭new FileReader(file)?

JAVA IO流相关代码(字符流:FileWriter类,FileReader类,BufferedReader类,BufferedWriter类)