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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

io流:  处理设备之间的数据传输的
        内部设备: 比如内存
        外部设备: 比如U盘
        输出流: 可以把数据储存到文件
        输入流: 也可以从文件中读取数据
        

        数据从哪里来  read
目的
        数据到哪儿去  write
常见应用
        文件复制(U盘拷贝内容)
        上传文件(微信图片,qq空间图片)
        下载文件(迅雷)
        
FileWriter
        FileWriter(Stirng fileName): 传递一个文件名称
输出流写数据的步骤:
        1.创建输出流对象
        2.调用输出流对象的写数据的方法
        3.释放资源
        
        FileWriter fw = new FileWriter("d:\\a.txt")
                使用系统资源创建了一个文件.如果系统没有这个文件会自动创建这个文件,
                如果有这个文件,会将这个文件的内容清空然后再写入内容;如果没有写盘符(d:),
                会写到相对路径下.即相应的项目路径下
               
                创建了输出流对象
                把输出流对象指向了文件
               
                fw.write("io流你好")
                数据没有直接写到文件,其实是写到了缓冲区
               
                fw.flush()
                利用flush()方法可以把数据写到文件
               
                fw.close() //关流
                利用close()方法可以释放资源,通知系统释放和上文件相关的资源
        
close()和flush()的区别
        flush(); 刷新缓冲区..流对象还可以使用
        close(): 先刷新缓冲区,然后通知系统释放资源关闭流...之后流对象不可以在使用了
        
换行符:
        windows: \r\n
        Linux: \n
        Mac: \r
        
追加数据:
        在FileWriter类中的构造方法其实是一个参数默认值为flose的方法,FileWriter(FileName ,boolean add)
        当add为true时代表在原文件上追加数据
        
FileReader:         
        FileReader(String fileName): 传递文件名字
        
        输入流度文件的步骤:
                A: 创建输入流对象,放入源地址
                B: 调用输入流对象的读数据方法
                C: 释放资源
               
                read(): 一次读取一个字符  返回值为int(对应字符的ascll码值)  当返回值为-1时,说明已经没有数据了,可以当作循环的结束条件
               
复制文本文件 :
        A: 创建输入流对象
        B: 创建输出流对象(注意)
        C: 定义变量
        D: 循环读取文件的数据,并赋值到变量.如果变量值不等于-1就还可以继续
        E:将读取到的字符写入目的文件中
        F:释放资源
        
read(char[] chs); 一次读取多个字符组成一个字符数组.长度为read(chs).
生成的字符数字即为chs.
使用打印chs是可先转化为Stirng类型的;如 new String(chs, 0, length)
        length = read(char[] chs) 即是上一次读取字符时的有效长度,如果不这样调整长度,在最后一次构造String数据时可能会把上上次读取到字符打印输出

BufferedWriter: 将文本写入写出字符输出流,缓冲哥哥字符,从而提供单个字符,数组,和字符串的高效写入
BufferedReader: 从字符输入流中读取文本,缓冲哥哥字符,从而实现字符,数组和行的高效读取
        BufferedWriter(new FileWriter("x.txt")) ;构造方法的一般形式
        BufferedWriter bw = new BufferedWriter(new FileWriter("x.txt"));
        bw.write(chs, 0, len)//写入字符数组chs中0到len的数据
        bw.write("aaa");写入数据 aaa
        bw.close();释放资源
        bw.newLine();   写一个换行符,这个换行符由系统决定  返回值void
        
        BufferedReader br = new BufferedReader(new FileReader("c.txt"));
        int ch = br.read();//单个字符读取
        char[] chs = new char[1024];
        br.read(chs);//一次读取一个字符数组
        br.readLine();//一次读取一行数据,但不是读取换行符  返回值String.但是不包括这一行结尾得换行符
               
        

0 个回复

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