码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础-IO流(123

时间:2017-11-02 11:16:00      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:tar   最大   字符串   write   读数   nbsp   linu   windows   cpu   

IO流用来处理设备之间的数据传输.可以实现文件复制,上传文件和下载文件.

IO流分类

IO流可以吧数据存储到文件,也可以从文件中读取数据

输出流(写数据用)

FileWriter
void write(String str) //写一个字符串数据 void write(String str,int index,int len) //写一个字符串中的一部分数据 void write(int ch) //写一个字符数据,写int类型好处是既可以写char类型的数据,也可以写插入对应的int类型数据 void write(char[] chs) //写一个字符数据 void write(char[] chs,int index,int len) //写一个字符数组一部分

步骤

往文件中写数据(对于cpu来说是往外输出)-->用输出流-->-->FileWriter
输出流写数据的步骤:
    A.创建输出流对象
    B.调用输出流对象写数据的方法
    C.释放资源

  构造方法,创建输出流对象
    FileWriter(String fileName)  //fileName为文件路径不写盘符为相对路径(相对项目)

  FileWriter(String fileName,boolean append)   //输出到文件时添加到文件尾
  成员方法
    void write(String str)  //调用流对象写数据方法
    //数据没有直接写到文件中,其实是写到了内存缓冲区
    void flush()  //将内存缓冲区中的数据写入文件
    void close()  //关闭流,不然会一直占用文件无法操作文件.

输入流(读数据用)

FileReader

构造方法
    FileReader(String fileName)
成员方法
    int read()    //一次读取一个字符,返回的是字符的int值.如果没有数据了,返回-1
    int read(char[] cbuf)

步骤

A.创建输入流
B.调用输入流对象的读数据方法
C.关闭流

close()和flush()方法区别

  A.flush()刷新缓冲区.刷新后流对象还可以继续使用
  B.close()先刷新缓冲区,然后通知系统释放资源.流对象不可以再使用.

向文本文件中写字符时换行的方式mac是\r,linux是\n,windows是\r\n

 文件复制(传输)时先用FileReader读取数据,再用FileWriter写数据.即先I在O.

        //创建输入流对象
        FileReader fr  = new FileReader("source.txt");
        //创建输出流对象
        FileWriter fw = new FileWriter("target.txt");
        
                /*读写数据
        int ch;
        while((ch=fr.read())!=-1) {   //读取到了返回字符int值,读不到返回-1
            fw.write(ch);
        }*/
        //读写数据
        char[] chs = new char[1024];  //最大字符数组
        int len;
        while((len=fr.read(chs))!=-1) {  //读取到字符数组时返回数组长度,读取不到返回-1
            fw.write(chs, 0, len);
        }
        
        //释放资源
        fw.close();
        fr.close();

 

Java基础-IO流(123

标签:tar   最大   字符串   write   读数   nbsp   linu   windows   cpu   

原文地址:http://www.cnblogs.com/aeolian/p/7768638.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!