java io 类包_java.io 包下的类有哪些 + 面试题

java.io 包下的类有哪些 + 面试题

IO 介绍

IO 是 Input/Output 的缩写,它是基于流模型实现的,比如操作文件时使用输入流和输出流来写入和读取文件等。

IO 分类

传统的 IO,按照流类型我们可以分为:

字符流

字节流

其中,字符流包括 Reader、Writer;字节流包括 InputStream、OutputStream。

传统 IO 的类关系图,如下图所示:

io%E5%8C%85%E4%B8%8B%E7%9A%84%E7%B1%BB.jpg

IO 使用

了解了 IO 之间的关系,下面我们正式进入实战环节,分别来看字符流(Reader、Writer)和字节流(InputStream、OutputStream)的使用。

① Writer 使用

Writer 可用来写入文件,请参考以下代码:

// 给指定目录下的文件追加信息

Writer writer = new FileWriter("d:\\\\io.txt",true);

writer.append("老王");

writer.close();

这几行简单的代码就可以实现把信息 老王 追加到 d:\\io.txt 的文件下,参数二表示的是覆盖文字还是追加文字。

② Reader 使用

Reader 可用来读取文件,请参考以下代码:

Reader reader = new FileReader("d:\\\\io.txt");

BufferedReader bufferedReader = new BufferedReader(reader);

String str = null;

// 逐行读取信息

while (null != (str = bufferedReader.readLine())) {

System.out.println(str);

}

bufferedReader.close();

reader.close();

③ InputStream 使用

InputStream 可用来读取文件,请参考以下代码:

InputStream inputStream = new FileInputStream(new File("d:\\\\io.txt"));

byte[] bytes = new byte[inputStream.available()];

// 读取到 byte 数组

inputStream.read(bytes);

// 内容转换为字符串

String content = new String(bytes, "UTF-8");

inputStream.close();

④ OutputStream 使用

OutputStream 可用来写入文件,请参考以下代码:

OutputStream outputStream = new FileOutputStream(new File("d:\\\\io.txt"),true);

outputStream.write("老王".getBytes());

outputStream.close();

NIO 介绍

上面讲的内容都是 java.io 包下的知识点,但随着 Java 的不断发展,在 Java 1.4 时新的 IO 包出现了 java.nio,NIO(Non-Blocking IO)的出现解决了传统 IO,也就是我们经常说的 BIO(Blocking IO)同步阻塞的问题,NIO 提供了 Channel、Selector 和 Buffer 等概念,可以实现多路复用和同步非阻塞 IO 操作,从而大大提升了 IO 操作的性能。<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值