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)
最新文章
- 一些Matlab函数的使用
- OC中的那些String
- Intellij Idea中运行tomcat 报內存溢出 解决方案 火龙战士 火龙战士
- byte与char的区别
- Smart法则
- android 自定义ratingbar 图片显示不全的解决方案
- Android中log4j的运用
- Ubuntu 12.04 使用Eclipse搭建C/C++编译环境
- LinearLayout具体解释二:LinearLayout的创建过程以及状态全程解析
- 数据包接收系列 — NAPI的原理和实现
- eclipse maven install 报错 jdk rather than jre?
- Python基础之面向对象进阶一
- [Chrome插件] SelectJd(京东自营筛选器) v1.0.0 发布
- 基于 redis 的分布式锁实现 Distributed locks with Redis debug 排查错误
- FSMC_LCD
- vue项目引入FastClick组件解决IOS系统下h5页面中的按钮点击延迟,连续点击无反应的问题
- 【Linux 线程】同一个进程中的线程共享哪些资源
- RecyclerView怎么能没有ItemClickListener?加一个!
- liunx网络基本命令
- BZOJ 4802 欧拉函数