IO流

来源:互联网 发布:通达信源码论坛 编辑:程序博客网 时间:2024/06/13 04:07
1).掌握File类
2).理解流的概念
3).掌握流输入输出原理
4).掌握I/O流分类
5).掌握输入输出流分类
6).理解字符流和字节流
7).理解文件,掌握文件读/写操作
8).理解对象流的文件读/写操作
9).理解节点流和处理流
1、File类
exists():判断文件夹是否存在
createNewFile():创建一个新的文件
mkdir() :创建文件夹 
mkdirs():级联创建
2、流的概念
    流是一个传送有序的字节序列,可以想象成为一个数据节点和程序之间建立起来的数据通道上的字节序列
Java程序通过流(Stream)完成输入/输出。
3、Java流输入输出原理
以程序为参照
文件----->程序(读入/输入)
程序----->文件(写入/输出)
4、IO流体系
数据流方向:数据流由一组确定的数据组成,数据流用带有名字的具有箭头的线段表示,名字称为数据流名,表示流经的数据,箭头表示流向。
处理数据单位:字节
四种抽象流类型
              输入流                     输出流
字节流:      InputStream                outputStream          
字符流:       Reader                     Writer     


5、字节输入流:InputStream
总结:流的读入过程
(1).?显示文件的路径  File file = new File("原文件路径");
(2).?将文件放入字节流中   InputStream is = new FileIInputStream(file);
(3).?判断:int y = is.read()
          while(y==-1)
          {
            break;
          }
     
(4).?再关闭流  is.close();
6、字节输出流:OutputStream 
总结:流的写入过程
(1).?File file1 = new File("拷贝到的文件路径");
(2).?OutputStream os = new FileIOutputStream(file1);
(3).?将   os.writer();放在读入过程中判断语句的后面
(4).?先关闭写入流  os.close();
7、字符输入流:Reader
8、字符输出流:Writer
9、缓冲字符输入流:BufferedReader
10、缓冲字符输出流:BufferedWriter
11、Object流-补充
1).序列化对象
当使用对象流写入或读入对象时,要保证对象是序列化的 
一个类如果实现了?接口(java.io包中的接口),那
么这个类创建的对象就是所谓序列化的对象。
注意:
(1).Serializable接口中没有方法
(2).使用对象流把一个对象写入到文件时不仅要保证该对象
是序列化的,而且该对象的?对象成员?也必须是序列化的。
12、节点流和处理流
1).常用节点流(字节流,字符流)
?可以从或向一个特定的地方读写数据,可以直接创建对象的,节点流是抽象的,创建节点流时要用上转型。例如:InputStream,OutputStream,Reader,Writer
2).常用处理流(缓冲流)
?是对一个已存在的流的连接和封装,它必须借助于节点流来创建对象,处理流不是抽象的,不用上转型,例如:BufferedInputStream
13、转换流 
(1)在字节流中:InputStream,OutputStream
 (2)在字符流中:Reader,Writer
(3)在缓冲流中:BufferedInputStream,BufferedOutputStream,BufferedReader,BufferedWriter
 (4)转换流中:InputStreamReader, OutputStreamWriter (将字节流转为字符流)。
转换流中转换的步骤:
(1).创造一个节点流/字节流,直接操作文件
InputStream file = new FileInputStream("G:/Book1.csv");
(2).按照指定编码从字节流转化为字符流
InputStreamReader in = new InputStreamReader(file, "GBK");
(3).在节点流的基础上,套一个缓冲流,实现缓冲和按行读取
BufferedReader  reader = new BufferedReader(in);
注:在转换流中,要将字节流转为字符流时,最后用缓冲流实现,因为缓冲流既可以实现字节流。也可以实现字符流
原创粉丝点击