Java_IO入门整理

Java_IO入门

1、IO流概述

(Input/Output)IO流,就是输入输出流,是Java实现输入输出的基础,主要有一下三种:
(1)、字节流和字符流
根据流操作的数量单位不同,可以分为字节流和字符流。
(2)、输入和输出流
根据流传输方向的不同,可以分为输出流和输入流。
(3)、节点流和处理流
根据流的功能不同,可以分为节点流(低级流)和处理流。节点流直接连接数据源,处理流在已有数据流基础上对数据进行封装实现。

2、Java中的IO类

InputStream与OutputStream

计算机中无论是图片,音频,视频还是视频都是以二进制文件形式存在,传输文件就是二进制流的传输,这是字节流
Java提供了InputStream与OutputStream两个大类来实现流的输出与输入,是字节流的顶级父类
InputStream的方法有:
1、read():从输入流读取8位的字节,转换为0~255之间的整数并返回,没有可用字节返回-1
2、read(byte[] b):从输入流入去若干字节,把它保存到参数b指定的字节数组中,返回整数表示数字表示读取字节的数目。
3、read(byte[] b,int off,int len):从输入流读取若干字节,off指定字节数组开始保存数据的其实下标,len表示读取的字节数目
4.close():关闭输入流并释放与该流相关的所有系统资源
注意:用数组来读取字节流效率更高,而且读取完一定要用close关闭。
OutputStream的方法有:
1、write():向输出流写入一个字节。
2、write(byte[] b):把参数b指定的字节数组的所有字节写到输出流
3、write(byte[]b,int off,int len):将指定byte数组中从偏移量off开始的len个字节写入数据流
3、flush():刷新此输出流并写入所有缓冲的输出字节
4、close():关闭资源
注意:使用数组写入效率更高,记得关闭资源,数据更新快要刷新输出流。

FileInputStream与FileOutputStream

FileInputStream
继承了InputSteam的方法,对文件进行读取

FileInputStream in = new FileInputStream("文件路径");
int  b = 0 ;//储存返回值
while(b=in.read() != -1 //读取成功){
	System.out.println(b);
}
in.close() ;

FileOutputStream
继承了OutputStream,对文件进行写入

FileOutputStream out = new FileOutputStream("文件路径");//清空文件内容并写入文件
//如果想要将数据追加到末尾可以这样,不清空文件
//FileOutputStream out = new FileOutputStream("文件路径",true);
String str = "Hello World!";
out.write(str.getBytes());
out.close

项目实战:
实际使用中一般用字节数组来读写数据,以下程序实现了对文件的拷贝

FileInputStream in = new FileInputStream("文件");
FileOutputStream out = new FileInputStream("目标文件");
int i = 0 ;
byte[] buff = new byte[1024] ;
while((len = in.read(buff))!=-1){
	out.write(buff,0,len);
}
in.close ;
out.close ;

BufferFileInputSream与BufferFileOutputStream

这两个类为读写字节流提供的缓冲区,提高了读写效率
使用方法与上面两个类类似,具体通过拷贝文件展示

BufferFileInputStream in = new BufferFileInputStream(new FileInputStream("文件"));
BufferFileOutputStream out = new BufferFileInputStream(new FileOutputStream("目标文件"));
int len = 0 ;
while((len = in.read())!=-1){
	out.write(len);
}
in.close ;
out.close ;

通过减少对文件的读取字数来提高读写效率,划分内存保存数据流,然后打开文件进行读取和写入,此方法常用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值