为了方便记忆,特将IO中涉及的类进行整理如下:

1、File类

  提供了目录操作,查看文件属性等。

2、java IO类层次

面向字节流的类为InputStream、OutputStream;面向字符流的类为Reader、Writer

可以使用 InputStreamReader 将 InputStream-->Reader

可以使用OutputStreamWriter 将 OutputStream-->Writer

InputStream    --->Reader

|---ByteArrayInputStream  --->CharArrayReader

|---StringBufferInputStream(discard)  --->StringReader

|---FileInputStream  --->FileReader

|---PipedInputStream  --->PipedReader

|---FilterInputStream

|---DataInputStream  

|---BufferedInputStream  --->BufferedReader(has readLine function)

OutputStream  --->Writer

|---ByteArrayOutputStream  --->CharArrayWriter

|---FileOutputStream  --->FileWriter

|---PipedOutputStream  --->PipedWriter

|---FilterOutputStream

|---DataOutputStream

|---PrintStream  --->PrintWriter

|---BufferedOutputStream  --->BufferedWriter

2、一些常用的组合

  BufferedReader s = new BufferedReader(new FileReader(fileName));   //字符缓冲方式读取

  DataInputStream di = new DataInputStream(new BufferedInputStream(new FileInputStream(filename)));   //从文件缓冲读取数据类型

  DataOutputStream outputStream = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(filename)));   //将数据类型写入到文件之中,然后可以通过DataInputStream来读取

  PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(filename)));   //将文件通过PrintWriter方式格式化写入

    out.println 函数就可以格式化写文件内容了。

3、RandomAccessFile类

  支持搜寻方法的文件读写类,提供给了seek函数

4、标准IO

System.err, System.out 都已经被包装成了 PrintStream 因此可以直接使用。

System.in 还是属于 InputStream 类型,因此在使用前需要包装下。

  1)按行读取:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  ///使用了InputStreamReader将System.in表示的InputStream类型转换成Reader类型。

  2)将System.out转换成PrintWriter:PrintWriter pw = new PrintWriter(System.out,true);

5、重定向IO

  setIn(InputStream)

  setOut(PrintStream)

  setErr(PrintStream) 

JavaIO系统的更多相关文章

  1. javaIO系统----再看装饰者模式

    javaIO系统拥有各种各样的类,尤其是每次要进行读写操作时,总会一层套一层的new,以前不明白为什么要这样做,不过学习了适配器模式后,对于这种做法立刻了解了:动态扩展IO的功能,使之符合使用者的习惯 ...

  2. 2012高校GIS论坛

    江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...

  3. 完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径。)

    完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径.) 错误原因 读出文件的路径需要有被拷贝的文件名,否则无法解析地址 源代码(用 ...

  4. JavaIO学习笔记(五)

    JavaIO前期准备 什么是同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 什么是异步 异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO ...

  5. Java学习日记之 Java-IO流

    Java中的IO流在处理上分为字节流和字符流.字节流和字符流的区别 : 1.字节流读取的时候,读到一个字节就返回一个字节:  字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 ...

  6. [零] JavaIO入门简介 程序设计语言 为什么需要IO库

     本文旨在引申出来Java IO的概念含义,作为学习JavaIO一个起步的了解知识点 部分内容引自<计算机操作系统第三版>  操作系统的文件管理   "在现代计算机系统中,要用到 ...

  7. [三]JavaIO之IO体系类整体设计思路 流的概念以及四大基础分类

    从本文开始,将正式进入JavaIO的简介 在继续javaIO系列的文章之前 可以过去看一下 本人博客上的设计模式中的 适配器模式和装饰器模式 这会对接下来的阅读大有帮助   本文是从逻辑上介绍整个的J ...

  8. JavaIO基础学习笔记

    JavaIO JavaIO即Java的输入输出系统.比如我们的程序要读取一个文本文件.一张图片或者要获取控制台输入的内容,就要用到输入流:又或者程序要将生成的一段字符窜以文件的形式保存到系统中就要用到 ...

  9. 系统学习 Java IO ---- 目录,概览

    Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.h ...

随机推荐

  1. php解决时间超过2038年

    问题 超过2038年的时间 php怎么处理? echo date('Y-m-d',2147483647); //date函数能处理的最大整数2147483647 ->2038-01-19 就是2 ...

  2. 在Linux下访问Windows共享文件夹

    说明 以下操作以Ubuntu为例,大家可以参考. 我在Ubuntu 14.04和16.04都试过了. Windows共享文件夹 如果局域网内有一台Windows主机,将指定文件夹设为共享,就可以在局域 ...

  3. StretchBlt函数和BitBlt函数的用法

    StretchBlt和BitBlt都用在双缓冲视图中,用来显示一幅图像 一.StretchBlt 函数从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩.也即是将内存中的 ...

  4. 解决idea gradle构建Received fatal alert: handshake_failure问题

    Gradle是一款强大的构建工具,但是搭建项目运行环境总是非常头痛,各种网络原因会导致项目不能成功的导入. 说一下这个问题的解决办法,折腾了很久终于解决了. javax.net.ssl.SSLHand ...

  5. 第六章:shiro Realm相关对象

    Shiro 中的 AuthenticationToken AuthenticationToken 用于收集用户提交的身份(如用户名)及凭据(如密码).Shiro会调用CredentialsMatche ...

  6. .NET框架源码解读之SSCLI编译过程简介

    前文演示了编译SSCLI最简便的方法(在Windows下): 在“Visual Studio 2005 Command Prompt”下,进入SSCLI的根目录: 运行 env.bat 脚本准备环境: ...

  7. 使用Array.prototype.indexOf()的几点注意

    对应indexOf这个方法,在日常开发中比较常见的应该是String.prototype.indexOf()方法,Array.prototype.indexOf()方法和其有很大的相似性,本文不想去描 ...

  8. LightOJ 1138 Trailing Zeroes (III)(二分 + 思维)

    http://lightoj.com/volume_showproblem.php?problem=1138 Trailing Zeroes (III) Time Limit:2000MS     M ...

  9. Android 多图,大图内存优化

    策略: 1. 图片压缩 如果所需尺寸大于图片原始尺寸,可以压缩图片节省内存. 2. 图片缓存 每个图片加载时都会生成一个 Bitmap.把这些 Bitmap 缓存起来以重用相同的图片,避免重复创建. ...

  10. util.Date转化成sql.date格式

    https://www.cnblogs.com/zhaotiancheng/p/6413067.html