10_IO_第10天(字符流字符缓冲流)

Posted haidrens

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10_IO_第10天(字符流字符缓冲流)相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

今日学习目标

  • 能够说出IO流的分类和功能
  • 能够使用FileWirter写数据到文件
  • 能够明确FileWriter写数据使用两种路径的区别
  • 能够说出FileWriter中关闭和刷新方法的区别
  • 能够使用FileWriter写数据的5个方法
  • 能够使用FileWriter写数据实现换行和追加写
  • 能够使用FileReader读数据
  • 能够使用FileReader读数据一次一个字符数组
  • 能够明确字符缓冲流的作用和基本用法
  • 能够使用缓冲流的特殊功能

FileWriter和FileReader

IO流概述和分类

  • IO流用来处理设备之间的数据传输
    • 文件复制(U盘拷贝内))
    • 上传文件(微信图片,QQ空间图片)
    • 下载文件(迅雷)
  • IO流分类
    • 输出流
      • FileWriter
    • 输入流
      • FileReader
  • 图解

 技术分享图片

FileWriter

FileWriter写数据

  • 构造方法
    • FileWriter(String fileName)传递一个文件名称  
  • 成员方法
    • void write(Stringstr)往文件中写入一个字符串。  
    • void flush()刷新该流的缓冲,把内存缓冲区中的数据刷新到文件中。  
    • void close()关闭此流,但要先刷新它。  
  • 输出流写数据的步骤:
    • 1.创建输出流对象  
    • 2.调用输出流对象的写数据的方法  
    • 3.释放资源  

 

import java.io.FileWriter;
import java.io.IOException;

public class Demo01FileWriter {
    public static void main(String[] args) throws IOException {
        //创建输出流对象
        FileWriter fw = new FileWriter("d:\\a.txt");
        /*
         * 创建输出流对象醉了哪些事情:
         *     A:调用系统资源创建了一个文件
         *  B:创建输出流对象
         *  C:把输出流对象指向文件
         */
        //调用输出流对象的写数据的方法
        //写一个字符串数据
        fw.write("IO流你好");
        //数据没有直接写到文件,其实是写到了内存缓冲区
        fw.flush();
        //释放资源
        //通知系统释放和该文件相关的资源
        fw.close();
        //while(true){}
    }
    
}

代码执行之后会在d盘目录下生成一个a.txt 文件,文件内容为IO流你好。

 

FileWriter写数据路径问题及关闭和刷新方法的区别

  • 路径:
    • 相对路径:相对当前项目而言的,在项目的根目录下(a.txt)
    • 绝对路径:以盘符开始的路径(d:\\a.txt)
  • close()和flush()方法的区别:
    • flush():刷新缓冲区。流对象还可以继续使用。
    • close():先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。  
import java.io.FileWriter;
import java.io.IOException;

public class Demo02FileWriter {
    public static void main(String[] args) throws IOException {
        //创建输出流对象
        //FileWriter fw = new FileWriter("d:\\a.txt");
        FileWriter fw = new FileWriter("a.txt");
        //调用输出流对象的写数据方法,并刷新缓冲区
        fw.write("helloworld");
        fw.flush();
        fw.write("java");
        fw.flush();
        //释放资源
        fw.close();
        
        //Stream closed    流关闭
        //fw.write("javaee");
        //fw.flush();
        //这里需要关闭流,不然就会报错,提示要关闭流
    }
}

 

 


以上是关于10_IO_第10天(字符流字符缓冲流)的主要内容,如果未能解决你的问题,请参考以下文章

10.4 缓冲流 BufferedReader & BufferedWriter& 缓冲流特殊功能readLine

第3章 缓冲流介绍和使用

IO编程__缓冲字符流__输入输出

第4章 IO流相关案例

IO流01_字节字符流缓冲流标准输入输出流打印流

IO编程__缓冲字符流__应用__记事本的打开保存功能