JavaIO系统
为了方便记忆,特将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系统的更多相关文章
- javaIO系统----再看装饰者模式
javaIO系统拥有各种各样的类,尤其是每次要进行读写操作时,总会一层套一层的new,以前不明白为什么要这样做,不过学习了适配器模式后,对于这种做法立刻了解了:动态扩展IO的功能,使之符合使用者的习惯 ...
- 2012高校GIS论坛
江苏省会议中心 南京·钟山宾馆(2012年4月21-22日) 以"突破与提升"为主题的"2012高校GIS论坛"将于4月在南京举行,由南京大学和工程中心共同承办 ...
- 完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径。)
完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径.) 错误原因 读出文件的路径需要有被拷贝的文件名,否则无法解析地址 源代码(用 ...
- JavaIO学习笔记(五)
JavaIO前期准备 什么是同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 什么是异步 异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO ...
- Java学习日记之 Java-IO流
Java中的IO流在处理上分为字节流和字符流.字节流和字符流的区别 : 1.字节流读取的时候,读到一个字节就返回一个字节: 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 ...
- [零] JavaIO入门简介 程序设计语言 为什么需要IO库
本文旨在引申出来Java IO的概念含义,作为学习JavaIO一个起步的了解知识点 部分内容引自<计算机操作系统第三版> 操作系统的文件管理 "在现代计算机系统中,要用到 ...
- [三]JavaIO之IO体系类整体设计思路 流的概念以及四大基础分类
从本文开始,将正式进入JavaIO的简介 在继续javaIO系列的文章之前 可以过去看一下 本人博客上的设计模式中的 适配器模式和装饰器模式 这会对接下来的阅读大有帮助 本文是从逻辑上介绍整个的J ...
- JavaIO基础学习笔记
JavaIO JavaIO即Java的输入输出系统.比如我们的程序要读取一个文本文件.一张图片或者要获取控制台输入的内容,就要用到输入流:又或者程序要将生成的一段字符窜以文件的形式保存到系统中就要用到 ...
- 系统学习 Java IO ---- 目录,概览
Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.h ...
随机推荐
- 去掉redhat linux提示注册
去掉提示注册的话,卸载几个软件包:#rpm -qa | grep subscription-manager 然后移除那出现的几项吧:#yum remove subscription-manager-g ...
- c语言蛋疼的字符串赋值
我觉得c语言比较蛋疼的一个地方就是给字符串赋值,不是初始化,是赋值. char string[20]={0}; 你不能通过 string="hello";这种方式赋值.但是在字符串 ...
- bzr: ERROR: No push location known or specified.
出现这种错误,要先uncommit,然后拉带最新版本,再commit最后push
- jQuery中mouseover和mouseout冒泡产生闪烁问题
问题:在jQuery中,对元素绑定mouseover和mouseout事件时,每次移入移出该元素和子元素时,都会触发事件,从而会出现闪动的现象. 原因:浏览器的冒泡行为. 解决方案: 使用mousee ...
- 超详细JSON解析步骤
JSON简介 JAVAScript Object Notation是一种轻量级的数据交换格式 具有良好的可读和便于快速编写的特性. 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了 ...
- Java学习总结——常见问题及解决方法
CYTX项目开发中遇到的问题及解决方法 Android开发各类常见错误解决方案: 使用Android Studio遇到的问题及解决过程 登录注册部分问题及解决: 1.问题:"No targe ...
- 修改VS中的附加依赖项的继承值
工程用不到的库,想去都去不掉,一直链接错误... 解决方法:打开vs的“属性管理器”窗口.通过这个窗口就可以对里面的继承值进行编辑了 另,“属性管理器”这个窗口,一般在“其他窗口”选项里(至少VS20 ...
- TSQL--SQL SERVER 常用系统变量
----------全局变量select @@version as '版本';---------------------------返回当前数据库的版本信息 select APP_NAME ( ) a ...
- Android studio 报错 installation failed with message failed to finalize session:INSTALL_FAILED_INVALID_APK 解决方法
解决方案: File->Setting->Build->Instant Run
- bootstrap-table简单使用
开发项目时总想着能不能有一款插件包含分页,查询等常用功能,后来发现了bootstrap-table 直接看代码和效果图 <!DOCTYPE html> <html lang=&quo ...