Java第一阶段复习之IO(一)

输入和输出概述(IO)概述:

什么是IO:(Input/Output):输入和输出.

IO设备: 和电脑通信的设备.

输入设备:麦克风,扫描器,键盘,鼠标等.

输出设备:显示器,打印机,投影仪,耳机,音响等.

----------------------------------------------------------------------------

为什么程序需要IO?

案例1:打游戏操作,得分比较高,存储游戏的信息(XXX-888).

            此时需要把游戏中的数据存储起来,只能存储在文件中.

案例2:打游戏操作,查看游戏英雄榜, 英雄榜的数据存储在一个文件中的.

            此时游戏程序需要去读取文件中的数据,并显示在游戏中.

案例3:上传和下载操作.

 

  IO操作是一个相对的过程,一般的,我们在程序角度来思考(程序的内存).

                 程序需要数据把数据流入到程序中,输入.

                 程序需要保存数据,把数据传递给别人输出.

 

IO流的分类和操作模板:

--------------------------------------------------------------

IO流的分类,站在不同的角度,分类方式是不一样滴:

1):根据流向划分: 输入流和输出流.

2):根据数据的单位划分: 字节流和字符流.

3):根据功能的划分:节点流和包装流.

--------------------------------------------------------------

四大基流:(字节输出流,字节输入流,字符输出流,字符输入流)

四大基流都是抽象类: 其他流都是继承于这四大基流的.

 我们不能创建四大基流的对象,只能创建其子类对象.

 无论是什么流,都有close方法,用来关闭资源.

       如果操作文件,就得开通一个流对象关联我们得磁盘文件,如果不关闭资源,那么磁盘的文件一直被程序所引用着,不能删除,也不能更改.

 

 

操作IO流的模板:

1):创建源或者目标对象(挖井).

     拿文件流举例:

     输入操作:    把文件中的数据流向到程序中,此时文件是源,程序是目标.

     输出操作:    把程序中的数据流向到文件中,此时文件是目标,程序是源.

2):创建IO流对象(水管).

     输入操作:     创建输入流对象.

     输出操作:     创建输出流对象.

3):具体的IO操作.

     输入操作:    输入流对象的read方法.

     输出操作:    输出流对象的write方法.

4):关闭资源(勿忘). 一旦资源关闭之后,就不能使用流对象了,否则报错.

     输入操作:    输入流对象.close();

     输出操作:    输出流对象.close().

--------------------------------------------------------------

操作IO流的六字箴言:

       读进来,写出去.

       读进来进来强调了是输入, 读说明是read方法.

       写出去:   出去强调了是输出,写说明是write方法.

 

文件流概述:

文件流: 顾名思义,程序和文件打交道.

 

此时我们谈及的文件,值得是纯文本文件(txt,不要使用Word,Excel),

-----------------------------------------------------------------

在字节流中,暂时不要使用中文.

FileInputStream:     文件的字节输入流

FileOutputStream:  文件的字节输出流

FileReader:文件的字符输入流

FileWriter:文件的字符输出流

 文件拷贝操作和资源的正确关闭:

 

资源的正确关闭: 

 

 

 

关闭和刷新

因为内置缓冲区的原因,如果不关闭输出流,无法写出字符到文件中。但是关闭的流对象,是无法继续写出数据的。如果我们既想写出数据,又想继续使用流,就需要flush 方法了。

  • flush :刷新缓冲区,流对象可以继续使用。

  • close:先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。

public class FWWrite {
    public static void main(String[] args) throws IOException {
        // 使用文件名称创建流对象
        FileWriter fw = new FileWriter("fw.txt");
        // 写出数据,通过flush
        fw.write('刷'); // 写出第1个字符
        fw.flush();
        fw.write('新'); // 继续写出第2个字符,写出成功
        fw.flush();
      
          // 写出数据,通过close
        fw.write('关'); // 写出第1个字符
        fw.close();
        fw.write('闭'); // 继续写出第2个字符,【报错】java.io.IOException: Stream closed
        fw.close();
    }
}

小贴士:即便是flush方法写出了数据,操作的最后还是要调用close方法,释放系统资源。  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值