黑马程序员_IO流

来源:互联网 发布:甬商贷网络贷款 编辑:程序博客网 时间:2024/06/07 16:08

------- android培训、java培训、期待与您交流! ----------

 

 

 

一、在学习IO流的时候,会运用到5个常用的对象:

 

1、System                                   2、Runtime                                             3、Date                                                      4、Calendar                                  5、Math

 

(1)、  System.in   是获取键盘录入的;      System.out   是在控制台或屏幕上输出的; System的getProperties()可以获取到系统的当前属性;

 

(2)、Runtime的exec方法,可以打开System32中存在的.exe结尾的应用程序;

 

(3)、Date获取当前系统时间,与我们平时看的系统时间的格式不同,需要用DateFormat的子类SimpleDateFormat中的format()方法将Date类获取的系统时间格式化;

 

(4)、Calendar是获取日期和时间的抽象类;月份在计算机中0到11,星期是从1到7,使用Calendar类获取月份和星期的技巧,定义数组 利用角标来获取;

 

(5)、Math中的方法都是静态的,ceil方法返回大于指定数据的最小整数,floor返回小于指定数据的最大整数;random是获取随机数的方法,比较常用;

 

 

二、字符流和字节流

 

1、流是用来操作数据的,流根据流向的不同,分为输入流和输出流;

 

2、根据操作数据的不同分为字符流和字节流;

 

三、字符流

 

1、流的命名规则后缀名是其父类的名称,前缀名是该流的功能;字符流是在子节流的基础上演变而来的,字符流里面有编码表;

 

2、字符流的两个父类 Reader读取流   Writer 写入流;

 

3、Reader在关闭资源的时候不刷新缓冲区,直接关闭流资源;Writer在关闭资源的时候,要刷新一次缓冲区,再关闭资源;

 

4、读取流和写入流是相互独立的两个流,他们之间数据获取,依靠中转站,也就是缓冲区;

 

5、缓冲区的出现,提高了流操作数据的效率;BufferedReader中有一个特有的方法readLine()方法,一次读取一行;

 

6、装饰类和被装饰类同属于一个类或接口,也就是一个体系;装饰类比较灵活;LineNumberReader有自己返回和获取的行号功能;

 

   

四、字节流

 

1、字节流的两个父类是InputStream和OutputStream;

 

2、字节流中有一个特有的读取方法available,可以定义一个刚刚好的缓冲区,不用使用循环,该方法返回的是字节的个数;

 

3、字节流不但可以操作文本数据,还可以操作媒体数据;

 

4、自定义字节流缓冲区,首先要定义一个数组,在分别定义指针和计数器,也就是定义两个变量;

 

5、字符串变成 字节数组  字符串.getBytes();

 

6、字节流中常用的子类是FileInputStream和FileOutputStream;

 

 

五、转换流

 

1、字符变字节的桥梁   OutputStreamWriter;字节变字符的桥梁InputStreamReader;

 

2、转换流都是字符流,转换流可以用来指定具体使用的编码表;

 

 

六、流操作的技巧

 

1、明确源和目的;                2、操作的数据是否是纯文本;                   3、明确使用的体系后,使用具体的对象                         4、是否需要添加缓冲区来提高效率

 

 

七、常见的源设备和目的设备

 

1、源设备   内存   硬盘   键盘;

 

2、目的设备  内存  硬盘   控制台;

 

八、使用时的注意事项:

 

1、使用完后,流要及时关闭;流的对象.close()方法;

 

2、IOException的抛出或捕获;

 

3、包不要忘记导入 import java.io.*;

 

 

 

 

 

 

 

 

 

 

0 0