java io 字节流_Java之IO-字节流

本文介绍了Java中使用FileInputStream和FileOutputStream进行文件读写的原理与方法。包括如何创建这些流对象,以及常用的操作方法如read()和write()等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FileInputStream

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

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

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

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

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

FileInputStream out = new FileInputStream(f);

所有方法:

d78b34a1639bd7ad6f08296e4cd2e01e.png

下面介绍几个常用方法:

public void read() throws IOException{}

public int read(int r)throws IOException{}

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

a57858b9bc0b5398d605517a8b2c8f91.png

值得一提的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处理的速度,所以在FileInputStream和FileOutputStream中新增了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);

操作方法

8b45fd7ca55f5d650a780152815f01be.png

介绍几个常用的方法

public void write() throws IOException{}

public int write(int r)throws IOException{}

write(byte[] b, int off, int len) throws IOException{}

6742f69b3fa75d7f12c3a533a65b27c9.png

还有其它的流对象基本上用法一致,基本都是成对成对的出现。

比如:

InputStream,OutputStream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值