Java IO——简介

一直搞不太懂java里的io问题,感觉java.io里面的类很多、很复杂而且很混乱,每次进行文件读写时都会费好多脑筋,
毕竟java里的文件读写是避免不了的=.=,写着写着自己也就明白了~

java io流的分类(两类)

1.根据数据流向分为:输入流和输出流,其中的“输入”和“输出”是相对于内存而言的;输入流用于把数据读取到内存中,输出流则相反。

2.根据数据单位分为:字节流和字符流,它们的区别如下:

  • 1). 字节流的基本单位是字节(8位),字符流的基本单位是Unicode码元(2个字节,16位);
  • 2). 字节流适用范围小,用于处理二进制数据或文本,字符流适用范围大,不仅能够处理文本数据,还能处理音频、图片等。
  • 3). 字节流默认不使用缓冲区,字符流使用缓冲区。

这里写图片描述

相应的,java.io中具有这4个重要的抽象类,在此基础上有很多子类。

\字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

java io流的主要子类

字节流(派生关系):

这里写图片描述

字符流(派生关系):

这里写图片描述

1.读文件的一般步骤:

  • 创建文件对象:File file = new File(文件的路径);
  • 创建流对象:FileReader fr = new FileReader(file);
    根据java api,FileReader对象会使用默认的字符集和字节缓冲区大小:
  • 注1:如果需要使用缓冲区,则用FileReader对象构建一个BufferedReader对象:BufferedReader bf = new BufferedReader(fr);,可以使用指定输入缓冲区大小的构造函数,以指定缓冲区大小~
  • 注2:如果要进行转码,需要使用FileInputStream对象构建一个InputStreamReader对象来处理,即:FileInputStream fis = new FileInputStream(file); InputStreamReader isr = new InputStreamReader(fis);,可以使用指定字符集的构造函数,以指定字符集~
  • 注3:如果即需要转码、又需要使用缓冲区的话,在注2的基础上,用InputStreamReader对象构造BufferedReader对象即可:BufferedReader bf = new BufferedReader(isr);
  • 读文件:read()readLine(),根据java api:
    int read():Reads a single character.
    String readLine():Reads a line of text.

2.写文件的一般步骤:同理~

实例链接: Java IO——文本增、删、查

参考链接:java使用IO读写文件总结Java API,感谢作者!

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值