黑马程序员------------------io流总结

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

首先写点学习的笔记:

IO流:
  输入流和输出流是相对一内存设备而言的;
  将外设的数据读入内存 就是输入流;
  将内存中数据写入外围设备就是输出流 


 1、为什么使用字符流?
    字节流使用的ASCII表,然后再这个基础上不同的地区在这上面又有了unicode编码表
字符流其实 就是字节流和编码表的合体,字节流读取文字字节数据后,不直接操作而是
先查指定的编码表,转换成对应的文字,在对这个文字进行操作。


字节流的两个顶层父类:
 1、InputStream 2、OutputStream


字符流的两个顶级父类:
 1、Reader  2、Writer
注意:有这四个派生出来的子类名称都是以其父类名作为子类名的后缀。
    如:InputStream的子类FileInputStream
    如:Reader的子类FileReader


记住:如果要操作文字,优先考虑字符流;以为他就是因为它出现的


  Writer 的子类
  
    FileWirter:
         创建一个FileWriter对象,该对象一被初始化就要明确被操作的文件
         而且该文件会被创建到指定的目录下,如果该目录下已经存在了同名文件,则将会被覆盖 
        其实写入数据是调用系统的方法,java不带,linux和windows的写入文件的方法
不一样!子要是读和写的操作都有可能发生IO异常!    


  Reader 的子类:
 
      FileReader:
         创建一个文件读取流对象,和指定的名称的文件相关联。
         要保证该文件是已经存在的,如果不存在,会发生FileNotFoundException异常

         读取方式第一种:read()方法
         读取的第二种方法:read(字符数组)


最后注意: 流对象----->在外边创建引用,在try里面初始化;    
        打开流必须关闭流,不然占用资源;

实现复制文件的代码:


import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


public class FileCopy {


/**
* 把D盘下的文件复制到E盘下面

* 步骤:
*     1、创建一个文件,用于存放复制的数据
*     2、定义读取流和磁盘中要复制的文件关联
*     3、通过不断的读写完成操作
*     4、关闭流
* @param args
*/
public static void main(String[] args) {
          FileWriter fw = null;
          FileReader fr = null;
          try {
fw = new FileWriter("f:\\Copytest.txt");
fr = new FileReader("d:\\demo.txt");
char buf [] = new char[1024];
int num = 0;
while((num=fr.read(buf))!=-1){
fw.write(buf);
}

} catch (Exception e) {
throw new  RuntimeException("读取失败");
}finally{
try {
   if(fr!=null){
fr.close();
     }
} catch (IOException e) {
e.printStackTrace();
}
try {
   if(fw!=null){
fw.close();
     }
} catch (IOException e) {
e.printStackTrace();
}
}

}
}


----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值