Java学习日记-----IO流
Posted gaohy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习日记-----IO流相关的知识,希望对你有一定的参考价值。
1.java.io包下
File类:java程序中的此类的一个对象,就对应着一个文件或网络中的一个资源。
Flie file1 = new File("D:\\\\io\\\\hello.txt");
File file2 = new File("D:\\\\IO\\\\io1");
>1. File既可以表示一个文件也可以表示一个文件目录
>2. File的对象是与平台无关的
>3. File类针对于文件或文件目录,只能进行新建、删除、重命名、上层目录等等操作。若涉及到访问文件内容只能使用IO流来操作。
>4. 常把File类的对象作为形参传递给对应的输入输出流的构造器。
2.IO流的结构
3.IO流的划分
1)按照流的流向: 输入 输出(站在程序的角度)
2)按照流中的数据的单位不同:字节流 字符流 (纯文本文件使用字符流 除此之外使用字节流)
3)按照流的角色不同: 节点流 处理流 (流直接作用于文件上的是节点流,除此之外都是处理流)
4.重点掌握
* 抽象基类 节点流(文件流) 缓冲流(处理流的一种,可以提升文件操作的效率)
* InputStream FileInputStream (int read(byte[] b)) BufferedInputStream (int read(byte[] b))
* OutputStream FileOutputStream (void write(b,0,len)) BufferedOutputStream (flush()) (void write(b,0,len))
* Reader FileReader (int read(char[] c)) BufferedReader (readLine()) (int read(char[] c))或String readLine()
* Writer FileWriter (void write(c,0,len)) BufferedWriter (flush()) (void write(c,0,len)或void write(String str))
注意:从硬盘中读入一个文件,要求此文件一定存在。若不存在,报FileNotFoundException的异常
从程序中输入一个文件到硬盘,此文件可以不存在。若不存在,就创建一个,实现输出。若存在将起覆盖。
在真正开发时,就是用缓冲流代替节点流。
主要最后要关闭相应的流,先关输出流,再关输入流。此操作放在finally中。
5.其他的流
1.转换流: 实现字节流与字符流之间的转换
InputStreamReader:输入时,实现字节流到字符流的转换,提高操作的效率(前提是:数据是文本文件) =====>解码:字节数组到字符串
OutputStreamWriter:输出时,实现字符流到字节流的转换。 ===>编码:字符串到字节数组
例题:
从键盘输入字符串,要求将读取到的整行字符串转成大写输出。然后继续进行输入操作,直至当输入“e”或者“exit”时,退出程序。
2.标准输入输出流
System.in: The "standard" input stream:从键盘输入数据
System.out:The "standard" output stream:从显示器输出数据
3.打印流
4.数据流
5.对象流
6.随机存取文件流
以上是关于Java学习日记-----IO流的主要内容,如果未能解决你的问题,请参考以下文章
阿里P8架构师(花名:霍州)Java程序性能优化“学习日记”