Java IO概览
输入输出的概念
从上图可以看出,当我们从一个源文件读取数据,并写输入程序中时,这时我们称之为输入/读取。
当我们从一个程序中取出数据,并写入文件中时,这时我们称之为输出/写。
为了能够让程序员更好的理解和使用输入输出,针对不同操作类型对应不同的类。
-
File Access 文件
-
Network Access 网络
-
Internal Memory Buffer Access 网络缓存
-
Inter-Thread Communication (Pipes) 网络 -线程通道
-
Buffering 缓存
-
Filtering 存储
-
Parsing 解析
-
Reading and Writing Text (Readers / Writers) 读写文档
-
Reading and Writing Primitive Data (long, int etc.) 读写基本数据
-
Reading and Writing Objects 读写对象
Java IO Class Overview Table
Byte Based | Character Based | |||
Input | Output | Input | Output | |
Basic | InputStream | OutputStream | Reader InputStreamReader | Writer OutputStreamWriter |
Arrays | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
Files | FileInputStream RandomAccessFile | FileOutputStream RandomAccessFile | FileReader | FileWriter |
Pipes | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
Buffering | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
Filtering | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter |
Parsing | PushbackInputStream StreamTokenizer | PushbackReader LineNumberReader | ||
Strings | StringReader | StringWriter | ||
Data | DataInputStream | DataOutputStream | | |
Data - Formatted | PrintStream | PrintWriter | ||
Objects | ObjectInputStream | ObjectOutputStream | ||
Utilities | SequenceInputStream |
具体IO操作
Java IO: Files
java 对文件的一些操作
Reading Files via Java IO
如你想读取一份文件内容,那请用FileInputStream
,要是只想读取文件的一部分那RandomAccessFile
.再好不过。
Writing File via Java IO
向文件写入内容,如果是从头写到尾,那请用FileOutputStream。如果不是,比如只想在文件最后写入,那请用RandomAccessFile
.
Java IO: Pipes
java虚拟机提供了一个管道,能够使二个线程进行通信,这个管道可能是共同的源文数据或是目标数据。
Java的管道机制和Unix / Linux有一点区别,在Unix / Linux中二个进程运行在不同的内存空间上,但能在管道上进行通信。在Java中要进行通信的双方必需在同一个进程中不同的线程上。
Creating Pipes via Java IO
Java中用PipedOutputStream
and PipedInputStream
classes类来建立管道。
看下面一个管道通信的例子:
PipedOutputStream output = new PipedOutputStream();
PipedInputStream input = new PipedInputStream(output);
本文翻译出自:http://tutorials.jenkov.com/java-io/overview.html