1. 首页
  2. Java基础

038-三十八、Java之IO-字节流

FileInputStream

该流用于从文件读取数据,它的对象可以用关键字 new 来创建。有多种构造方法可用来创建对象,主要是读取字节的。

可以使用字符串类型的文件名来创建一个输入流对象来读取文件。


InputStream f = new FileInputStream("C:/java/1.txt");

也可以使用一个文件对象来创建一个输入流对象来读取文件。我们首先得使用 File() 方法来创建一个文件对象


File f = new File("C:/java/1.txt"); FileInputStream out = new FileInputStream(f);

所有方法:
38-三十八、Java之IO-字节流"

下面介绍几个常用方法:


public void read() throws IOException{} public int read(int r)throws IOException{} read(byte[] b, int off, int len) throws IOException{}

38-三十八、Java之IO-字节流"

值得一提的native方法
上面核心方法中为什么实现简单,因为工作量都在native方法里面,即JVM里面实现了。native 倒是不少,一一列举吧:


native void open(String name) // 打开文件,为了下一步读取文件内容 native int read0() // 从文件输入流中读取一个字节 native int readBytes(byte b[], int off, int len) // 从文件输入流中读取,从off句柄开始的len个字节,并存储至b字节数组内。 native void close0() // 关闭该文件输入流及涉及的资源,比如说如果该文件输入流的FileChannel对被获取后,需要对FileChannel进行close。     

其它还有值得一提的就是,在jdk1.4中,新增了NIO(关于NIO后续再进阶中再讲述)包,优化了一些IO处理的速度,所以在FileInputStreamFileOutputStream中新增了FileChannel getChannel()的方法。即获取与该文件输入流相关的java.nio.channels.FileChannel对象。

FileOutputStream

该类用来创建一个文件并向文件中写数据。

如果该流在打开文件进行输出前,目标文件不存在,那么该流会创建该文件。

有两个构造方法可以用来创建 FileOutputStream 对象。

使用字符串类型的文件名来创建一个输出流对象:


OutputStream f = new FileOutputStream("C:/java/1.txt ")

也可以使用一个文件对象来创建一个输出流来写文件。

我们首先得使用File()方法来创建一个文件对象:


File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f);

操作方法与FileReader很类似,我就演示一个吧。
38-三十八、Java之IO-字节流"

介绍几个常用的方法


public void read() throws IOException{} public int read(int r)throws IOException{} read(byte[] b, int off, int len) throws IOException{}

操作方法与FileWriter很类似,我就演示一个吧。
38-三十八、Java之IO-字节流"

以上还会有其它集成的方法,大家都可以自己测试一下就好了,在这里就不一个个演示了。

还有其它的流对象基本上用法一致,我就不一一讲解了基本都是成对成对的出现。

比如:

InputStream,OutputStream

练习:

使用程序创建一个文本并且写入数据,然后在读取数据。使用什么方法和构造函数,大家随便。

在公众号输入“FileOutputStream作业”

写完了如果写得有什么问题,希望读者能够给小编留言,也可以点击[此处扫下面二维码关注微信公众号](https://www.ycbbs.vip/?p=28 "此处扫下面二维码关注微信公众号")

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「666」 免费领取我精心整理的进阶资源教程
  4. JS中文网,Javascriptc中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,是给开发者用的 Hacker News,技术文章由为你筛选出最优质的干货,其中包括:Android、iOS、前端、后端等方面的内容。目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。

    本文著作权归作者所有,如若转载,请注明出处

    转载请注明:文章转载自「 Java极客技术学习 」https://www.javajike.com

    标题:038-三十八、Java之IO-字节流

    链接:https://www.javajike.com/article/1345.html

« 039-三十九、Java之IO-字符流的缓冲区
037-三十七、Java之流-文件(File)»

相关推荐

QR code