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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© LiuKang 中级黑马   /  2013-12-7 12:28  /  1348 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

IO流输入与输出:
按流向分为:输入流、输出流
按操作数据分为:字节流、字符流
字节流的抽象基类:
InputStream、OutputStream、BufferedInputStream、BufferedOutputStream
——FileInputStream
字符流的抽象基类:
Reader、 Writer、BufferedReader、BufferedWriter
——FileReader
打印流:
字节打印流:printStream
  构造函数可接收的参数类型:
  file对象、字符串路径String、字节输出流OutputStream
字符打印流:printWriter
  构造函数可接收的参数类型:
  File对象、字符串路径String、
  字节输出流OutputStream、字符输出流Writer
序列流:SequenceInputStream
对已有文件进行续写:
FileWriter fw=new FileWriter("test.txt",true);传递一个true参数,代表不覆盖已有的文件内容,将它加到已有文件的末尾。
字符流的缓冲区:
对应类:BufferedWriter、BufferedReader 需结合流才能使用。
它的出现是为了提高流的操作效率,所以在创建缓冲区前必须要先有流对象。
只要用到缓冲区就要记得刷新。bufferWriter.flush();
该缓冲区提供了一个跨平台的换行方法bufferWriter.newLine();
该缓冲区提供了一个读取一行的方法bufferReader.readLine();
装饰设计模式:
  当想要对已有的对象进行功能增强时,可以定义类,将已在对象传入,基于原来的功能,提供增强功能。则自定义的类就称为装饰类。
  装饰类通常会通过构造方法接收被装饰类的对象,并基于被装饰的对象的功能提供更强的功能。
  Person 类,
  SuperPerson 类中写:
  private Person p;
  SuperPerson(Person p){this.p=p;}
  MyReader专门用于读取数据的类。
  ——MyTextReader
  ——MyBufferReader(MyReader r){}
  ——MyMediaReader
  ——MyBufferReader(MyReader r){}
  ——MyDataReader
  ——MyBufferReader(MyReader r){}
  ——MyBufferReader
  ——MyBufferReader(MyReader r){}
  Class MyBufferReader extends MyReader{
  private MyReader r;
  MyBufferReader(MyReader r){}
  }
  装饰模式比继承灵活,降低了类与类之间的关系,装饰类和被装饰类都所属于一个体系。
流操作的基本规律:
1、明确源和目的
  源:输入流——InputStream、Reader
  目的:输出流——OutputStream、Writer
2、操作的数据是否是纯文本
  是:字符流
  不是:字节流
  
转换流是字符和字节之间的桥梁,涉及到字符编码转换时需用到,InputStreamReader
假如我要从url处获取源文件BufferedReader   in   =new BufferedReader(new InputStreamReader(url.openStream(),“gbk”)); 然后用readlLine传给str字符串是否意味着我从该处获得的str编码格式即为“gbk”,那我对这个字符串再做相应操作,是不是和一般的“Unicode”格式一样没有问题。又如果我将这个字符串要存进一个文本文档中,用以下方式BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("Test.txt")));
File:
1、创建:
  Boolean createNewFile():在指定位置创建文件,如果文件已存在则不创建,返回false.
  Boolean mkdir();创建文件夹
  Boolean mkdirs();创建多级目录的文件夹
2、删除:boolean delete();删除失败返回false;
Void deleteOnExit();在程序退出时删除指定文件
3、判断:canExecute()测试文件是否可执行
在判断文件对象是否是文件或是目录时必须要先判断该文件对象封装的内容是否存在,通过exists判断
  isFile();是否是文件
  isDirectory();是否是目录
  isHidden();是否是隐藏文件
4、获取信息:
  getName();getpath();getParent();getAbsolutePath();
  getCanonicalPath();获得规范路径
  lastMotified();最后修改的时间
  递归:
  递归应注意的条件:
  1、限定条件
  2、要注意递归的次数,避免内存溢出

评分

参与人数 1技术分 +2 黑马币 +3 收起 理由
狼王 + 2 + 3 赞一个!

查看全部评分

4 个回复

倒序浏览
这几天多逛一下论坛,多发一些帖子。。。。
回复 使用道具 举报
mark                             
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马