java.io中有四个重要的抽象类
InputStream(字节输入流)
Reader(字符输入流)
OutputStream(字节输出流)
Writer(字符输出流)
其中,InputStream和Reader为子类提供read()方法,OutputStream和Writer为子类提供write()方法。
1.文件字节流:包含FileInputStream类和FileOutputStream类。
2.文件字符流:包含FileReader和FileWriter。
3.缓冲流:包含BufferedReader和BufferedWriter。
4.数组流:ByteArrayInputStream和ByteArrayOutputStream。
5.字符串流:String Reader。
6.数据流:DataInputStream和DataOutputStream。
7.对象流:ObjectInputStream和ObjectOutputStream。
字节流
字节输入流 InputStream
FileInputStream 操作文件的字节输入流
BufferedInputStream高效的字节输入流
字节输出流 OutputStream
FileOutputStream 操作文件的字节输出流
BufferedOutputStream 高效的字节输出流
字符流
字符输入流 Reader
FileReader 操作文件的字符输入流
BufferedReader 高效的字符输入流
InputStreamReader 输入操作的转换流(把字节流封装成字符流)
字符输出流 Writer
FileWriter 操作文件的字符输出流
BufferedWriter 高效的字符输出流
OutputStreamWriter 输出操作的转换流(把字节流封装成字符流)
方法
读数据方法:
read() 一次读一个字节或字符的方法
read(byte[] char[]) 一次读一个数组数据的方法
readLine() 一次读一行字符串的方法(BufferedReader类特有方法)
readObject() 从流中读取对象(ObjectInputStream特有方法)
写数据方法:
write(int) 一次写一个字节或字符到文件中
write(byte[] char[]) 一次写一个数组数据到文件中
write(String) 一次写一个字符串内容到文件中
writeObject(Object ) 写对象到流中(ObjectOutputStream类特有方法)
newLine() 写一个换行符号(BufferedWriter类特有方法)
向文件中写入数据的过程
1,创建输出流对象
2,写数据到文件
3,关闭输出流
从文件中读数据的过程
1,创建输入流对象
2,从文件中读数据
3,关闭输入流
文件复制的过程
1,创建输入流(数据源)
2,创建输出流(目的地)
3,从输入流中读数据
4,通过输出流,把数据写入目的地
5,关闭流
1.Java IO是采用的是装饰模式,即采用处理流来包装节点流的方式,来达到代码通用性。
2.处理流和节点流的区分方法,节点流在新建时需要一个数据源(文件、网络)作为参数,而处理流需要一个节点流作为参数。
3.处理流的作用就是提高代码通用性,编写代码的便捷性,提高性能。
4.节点流都是对应抽象基类的实现类,它们都实现了抽象基类的基础读写方法。其中read()方法如果返回-1,代表已经读到数据源末尾。
这周身体原因只上了一节课,不知道课上具体讲了什么,问了室友大概讲了什么,好像就是以上这些吧。大部分来自各个网站的摘录。