Java基础-IO流(123

Posted 秋夜雨巷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础-IO流(123相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

Java基础—IO小结(待整理)

Java IO流基础总结

Java : java基础 IO流

java基础之 IO 流(输入/出字符流)

java IO流的问题