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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dd6434541 中级黑马   /  2016-5-9 22:03  /  299 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Day21
01FileReader FileWriter
  1. FileReader它的直接父类是 inputStreamReader( ), 爷爷类是Reader
    int read( )        //读取单个字符, 返回int是单个字符对应的码表值, 转成char就是单个字符
    int read(char[] c)    //读取一个字符数组   

2. FileWriter的直接父类是 outputStreamWriter( );
    void write(String s)            //可以直接输入一个字符串, 底层实际上也是将字符串转换为字节, 写到文本中再依靠编码表翻译成中文
    void writer(int i)
    void writer(char[] c)

    void close()                //Writer中有一个大小为2048的缓冲区, 如果不关流的话缓冲区的字符就不会读出, 关流可以刷新缓冲区,读出剩余字符, 只有Writer有这个特点??? 并不是, 带有缓冲区的都有这个特点

02什么时候使用字符流,什么时候使用字节流
1. 拷贝纯文本的文件(能用记事本打开, 而且能看的懂得文件(.txt, .java ....))时 用字节流 (字节流更高效)
    其实字符流也可以拷贝纯文本文件, 但是效率会低
2. 只读或只写纯文件可以使用字符流
3. 拷贝非纯文本文件必须使用字节流, 用字符流会乱码
    因为如果使用字符流,在写入的时候, 将字节流转换成字符流, 可能某些字节在转换成字符的时候, 可能找不到对应的编码, 用问号代替,
在写出的时候就会写错, 所以文件会乱码

07BufferedReader readLine( ),BufferedWriter writeLine( ) 重要的特有方法! 可以读取一行和写入一行
1. bufferedreader是reader的直接子类, 实现了reader的高效读取,
    String   readLine()        //每次读取一个文本行,遇到\r\n代表读完了本行,不包括换行符,


2. BufferedWriter
    构造方法:
    BufferedWriter(Reader in);            //需要传入一个Reader的子类对象
    String newLine( );               //读取一个换行符, 是一个跨平台的换行符

评分

参与人数 1黑马币 +2 收起 理由
sUnShinE。 + 2 赞一个!

查看全部评分

0 个回复

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