A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-王康 中级黑马   /  2012-10-11 11:10  /  1117 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、IO流
①输入流和输出流
    是相对于内存设备而言。
输入流:把硬盘设备数据读出放到内存设备中。
输出流:吧内存设备的数据写到硬盘设备中。
② 字节流:
用于处理字节的数据流对象。
两个顶层父类: InputStream ;OutmpuStream。这些体系的子类都以父类名作为后缀,而且子类名的前缀就是该对象的功能。
③ 字符流
Unicode 码表:统筹各国的文字。
字符流:字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的文字,然后再对这个文字进行操作。字符流=字节流+编码表。
两个顶层父类:Reader;Writer;这些体系的子类都以父类名作为后缀,而且子类名的前缀就是该对象的功能。

2、FileWrite ——字符流输出对象
  是一个往文件中写入字符数据的字符输出流对象。既然是往一个文件中写入文字的数据,那么在创建对象时,就必须明确该文件的存储位置。
事例:
   FileWriter fw=new FileWriter(“demo.txt ”); //若文件存在,覆盖;不存在,会创建。但是此时的数据是被写入到了临时存储缓冲区中。
   Fw.flush(); // 立即进行写入的硬盘,刷新缓冲区中的数据到目的地。
   Fw.close(); // 关闭流,关闭资源。


3、IO异常的处理
  FileWriter fw=null;
  try {
   fw= new FileWriter("demo.txt");
   fw.write("12");
   
  } catch (IOException e) {
   
  }finally{
   if(fw!=null){   // 若发生FileNotFoundException异常,此时fw还是null,使用fw.close()会发生异常,所以要先判断。
    try {
     fw.close();
    } catch (IOException e) {
     throw new RuntimeException("关闭失败");
    }   
   }
  }

4、FileReader ——字符流写入对象
① 读取方式一
  //1、创建读取字符数据的流对象;抛出异常
  FileReader fr= new FileReader("demo.txt");
  int ch=0;
  while((ch=fr.read())!=-1){  //2、用read方法一次读取一个字符
   System.out.println((char)ch);
  }
② 读取方式二
    //1、创建读取字符数据的流对象;抛出异常
  FileReader fr= new FileReader("demo.txt");
  char[] buf=new char[1024]; //2、建立缓冲区
  int len=0;
  while((len=fr.read(buf))!=-1){ // 3、每次都读取缓冲区大小的数据,但返回的是实际读取个数。
   System.out.print(new String(buf,0,len));
  }

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马