Java 输入输出流教程(一)(原作:Java IO Tutorial by Jakob Jenkov)
来源:互联网 发布:mac上的解压缩软件 编辑:程序博客网 时间:2024/05/21 08:52
译者注:作为一个Java菜鸟,一直对输入输出流表示十分混沌。这个tutorial的出现,让我对Java IO有了一个比较清晰的认识,所以把它翻译在这,作为自己学习的记录,也可以跟大家分享。原文链接:http://tutorials.jenkov.com/java-io/index.html。本篇是前两课的译文。
一、JAVA IO简介
大多数的JAVA应用都需要接收一些输入,并且根据这个输入做一些输出。JAVA IO包(java.io)的目的,就是实现这个任务。
如果你看了java.io中的类,这么多的类会让人非常困惑。这些类的目的都是什么?对于一个给定的任务,你要选择哪个类去使用?如何建立自己的IO类……这篇教程的目的是告诉你这些类是如何被分类的,它们的作用是什么。让你不用再怀疑自己选择的类是否正确,不用再困惑你需要的类是否已经存在。
java.io的范围
java.io没有处理所有类型的输入和输出,比如在一个用户界面或者网页上,获得输入、发布输出就没有被包含在java.io中。这些类型可能被包含在其他包里,比如Swing工程中的JFC类,或者是企业版JAVA的Servlet或HTTP包中。
java.io只关注于比较基础的,文件、网络流、内存缓存等的输入和输出。
这篇JAVA IO教程的范围
以下是这篇教程的内容,这篇教程并不是一个接口列表,你可以从sun公司的官网上的java文档中获得接口列表。这篇教程其实是对每个类的一个简短的介绍,包括它的作用,和一些使用它的例子。换言之,是一些你在java文档中无法找到的东西。
Java IO
Java IO 简介
Java IO 综述
Java 文件
Java 管道
Java 网络流
Java 字节+字符串
Java System.in / .out / .error
Java 流
Java 读/写
Java 输入解析
Java 并发IO
Java IO异常处理
Java InputStream
Java OutputStream
Java FileInputStream
Java FileOutputStream
Java RandomAccessFile
Java File
Java PipedInputStream
Java PipedOutputStream
Java ByteArrayInputStream
Java ByteArrayOutputStream
Java FilterInputStream
Java FilterOutputStream
Java BufferedInputStream
Java BufferedOutputStream
Java PushbackInputStream
Java SequenceInputStream
Java DataInputStream
Java DataOutputStream
Java PrintStream
Java ObjectInputStream
Java ObjectOutputStream
Java Serializable
Java Reader
Java Writer
Java InputStreamReader
Java OutputStreamWriter
Java FileReader
Java FileWriter
Java PipedReader
Java PipedWriter
Java CharArrayReader
Java CharArrayWriter
Java BufferedReader
Java BufferedWriter
Java FilterReader
Java FilterWriter
Java PushbackReader
Java LineNumberReader
Java StreamTokenizer
Java PrintWriter
Java StringReader
Java StringWriter
二、Java IO综述
在这部分我会对java.io中的类进行一个综述,具体的说,我将根据它们的作用将它们分类。这种分类会让你更容易决定使用哪个类来解决问题。
以下是这一课的三个议题:
1.输入和输出-源和目标
2.java IO的目的和特性
3.java IO类概览
1.输入和输出-源和目标
对于”输入“和”输出“这两个词,有时会有一些混淆。一个程序的输入通常是另一个程序的输出,OutputStream究竟是将输出写入其中的流,还是输出的来源?毕竟,InputStream是将它的数据“输出”到“读取”程序中,不是吗?对我来说,我在刚学习java IO的时候对这一点有些困惑。
为了解开这个困惑,我将“输入”和“输出”改名,将它们与“这个输入从哪里来”和“这个输出要到哪里去”联系起来。(于是便有了所谓的“源和目标”)
对大多数的java程序来说,它们只关心将原始数据从“源”读到,并且将其写到“目标”中。典型的源和目标的形式包括:
- 文件
- 管道(pipes,指线程之间的数据传输,不确定是否翻译成管道)
- 网络连接
- 内存缓存
- System.in/.out/.error
2.Java IO的目的和特性
- 文件存取
- 网络存取
- 内存缓存存取
- 线程间交流管道
- 缓存
- 过滤
- 读写文本
- 读写基本类型数据(long, int...)
- 读写对象
3.Java IO类概览
InputStreamReaderWriter
OutputStreamWriter数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter文件FileInputStream
RandomAccessFileFileOutputStream
RandomAccessFileFileReaderFileWriter管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter缓存BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter过滤FilterInputStreamFilterOutputStreamFilterReaderFilterWriter解析PushbackInputStream
StreamTokenizer PushbackReader
LineNumberReader 字符串 StringReaderStringWriter数据DataInputStreamDataOutputStream 数据 - 有格式的 PrintStream PrintWriter对象ObjectInputStreamObjectOutputStream 效用SequenceInputStream
- Java 输入输出流教程(一)(原作:Java IO Tutorial by Jakob Jenkov)
- Java 输入输出流教程(二)——【文件】(原作:Java IO Tutorial by Jakob Jenkov)
- Java 输入输出流教程(三)——【管道】(原作:Java IO Tutorial by Jakob Jenkov)
- Java NIO系列教程(二) Channel原文链接 作者:Jakob Jenkov 译者:airu 校对:丁一 Java NIO的通道类似流,但又有些不同: 既可以从通
- Jakob Jenkov多线程系列一一Java Volatile Keyword
- java IO-输入输出流(一)
- java Io总结一(输入输出流)
- Java IO 经典教程 (上) (翻译自jenkov.com)
- Java IO 经典教程 (中) (翻译自jenkov.com)
- Java IO 经典教程 (下) (翻译自jenkov.com)
- JAVA输入输出流(IO)
- Java io 输入输出流(一)
- Java IO(输入输出)
- java io (java输入输出流)详解
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流 ZHBK [原作]
- 彻底明白Java的IO系统(文摘)---JAVA之精髓IO流 ZHBK [原作]
- Java Io 流(输入输出流)
- java IO-输入输出流(二)
- rspec 测试
- ODS与DW的区别
- 如何由已知频率分频产生任意频率
- C# Webserivce配置注意事项
- 23 种设计模式
- Java 输入输出流教程(一)(原作:Java IO Tutorial by Jakob Jenkov)
- 50个jQuery代码段帮你成为更出色的JS开发者
- 导入svn项目时eclipse崩溃
- Struts2的OGNL标签详解
- i OS UT coverage
- struct关键字---C语言深度剖析读书笔记9
- POJ 1236 Network of Schools
- Kinect SDK1.7 迎来重大更新
- (代码4)简单视频控制