输入/输出流(二)

1、字节流和字符流:
字节流和字符流的操作方式几乎完全一样,区别只是操作的数据单元不同而已。字节流操作的数据单元是字节,字符流操作的数据单元是字符。
InputStream和Reader
InputStream和Reader是所有输入流的抽象基类,它的方法是所有输入流都可以使用
的方法
InputStream类的方法
在这里插入图片描述

Reader类的方法:
InputStream和Reader的方法基本一致,只是InputStream读取的是字节,使用的参数是byte数组 (byte[]),而Reader读取的是字符,使用的参数是char数组(char[])
InputStream和Reader都是抽象类,本身不能创建实例,但它们分别有一个用于读取文件的输入流: FileInputStream和 FileReader,它们都是节点流需要直接和指定文件关联。
在这里插入图片描述

2、OutputStream和Writer:
OutputStream和Write是所有输出流的基类,它们的方法也是非常类似的,它们的方法是所有输出流都 可使用的方法。
OutputStream类的方法:
在这里插入图片描述

Writer类的方法:

在这里插入图片描述

3、打印流:
在整个IO包中,打印流是输出信息做方便的类,主要包含字节打印流(PrintStream)和字符打印流 (PrintWriter)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字 符串等等。
打印流只有输出没有输入。是 一种 处理流。
格式字符:
格式字符用以指定输出项的数据类型和输出格式。
d格式:用来输出十进制整数。有以下几种用法:
%d:按整型数据的实际长度输出。
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空
格,若大于m,则按实 际位数输出。
%ld:输出长整型数据。
o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样
也可以指定字段宽度用“%mo”格式输出。
x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同
样也可以指定字段宽度用"%mx"格式输出。
c格式:输出一个字符。
s格式:用来输出一个串。有几中用法
%s:例如:printf("%s", “CHINA”)输出"CHINA"字符串(不包括双引号)。
%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,
将字符串全部输出。若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m
列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。
如果n>m,则自动取n值,即保证n个字符正常输出。
f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:
%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
%-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。
4、转换流:
输入/输出流体系中还提供了两个转换流,这两个转换流用于将字节流转换成字符流,其中InputStreamReader将字节输入流转换成字符输入流, OutputStreamWriter将字节输出流转换成字符 输出流。
5、缓冲流:
在读写数据时,让数据在缓冲区能减少系统实际对原始数据来源的存取次数,因为一次能做多个数据单 位的操作。相较而言,对于直接从文件读取数据或将数据写入文件,比起缓冲区的读写要慢多了。所以 使用缓冲区的流,一般都会比没有缓冲区的流效率更高。拥有缓冲区的流被称为缓冲流,包括 BufferedInputStream、BufferedOutputStream类和BufferedReader、BufferedWriter类。缓冲流把数据从原始流成块读入或把数据积累到一个大数据块后再成批写出,通过减少通过资源的读写次数来加 快程序的执行。
BufferedReader类:BufferedReader是Reader的子类,可以Reader的方法。从字符输入流中读取文本,缓冲各个字符,从 而实现字符、数组和行的高效读取。下面是BufferedReader的够构造器和特有的方法
在这里插入图片描述
BufferedWriterr类:BufferedWriter类是Writer的子类。
在这里插入图片描述
6、RandomAccessFile类:
RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法 来访 问文件内容,它既可以读取文件内容,也可以向文件输出数据。RandomAccessFile支持“随机访问”的方 式,程序可以直接跳转到文件的任意地方来读写数据。
RandomAccessFile四种访问模式:
“r”:以只读方式打开指定文件。如果试图对该RandomAccessFile执行写入方法,都将抛出 IOException 异常。
“rw”:以读、写方式打开指定文件。如果该文件尚不存在,则尝试创建该文件。
"rws”:以读、写方式打开指定文件。相对于"rw"模式,还要求对文件的内容或元数据的每个更新 都同步写入到底层存储设备。
“rwd”: 以读、写方式打开指定文件。相对于"rw"模式,还要求对文件的内容的每个更新都同步写入 到底层存储设备。
元数据是文件的附加属性,如文件大小、创建时间、所有者等信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值