java的io包_java的io包详解

2a70dff951e90cad18572b6068c2860b.png

首先来说一下读的问题。

从文件中读取数据,有两种方法:

一种是使用FileInputStream,一种是使用FileReader。

FileInputStream:将文件以二进制流的形式读入到stream中,这里首先需要注意的是文件不单单指的是文本文件还包括图片,影音等任何在计算机上存储的文件。如果是文本文件,比如该文本的文件编码是UTF-8编码,则读入的流就是文本中所有字符的UTF-8编码的字符,如果是GBK,则读入的文件就是GBK编码的流。

如果想要将文件转化为字符形式,则需要使用InputStreamReader这个类,它是字节和字符之间的桥梁。在InputStreamReader中,可以指定将字节转化为字符的编码形式,比如下面的一条语句。

InputStreamReader  isr = new InputStreamReader(new FileInputStream(“text.txt”),”UTF-8”);就是将读入的字节流以UTF-8的形式转化为字符。

一般我们还会使用BufferReader这个类,这个类有很多实用性很强的函数,它以Reader作为构造函数的参数。

下面来说一下FileReader:

和FileInputStream一样,它也是以string和file来作为自己的参数。不同的是:1,文件格式比较少,只能是文本格式,而不能是图片或者影音等。2.如果FileReader所在的java源代码是UTF-8格式,而读取的文本是GBK编码,则会出现乱码,java源代码和读取的文本文件的编码必须是一样的,不然会出现乱码,如果没有中文字符,则在有的情况下是不出现乱码的。

这里还要说一下java中的编码格式,java涉及到两种编码源文件编码和class编码,操作系统的编码可以不用考虑。

1,使用string.getbytes()得到的是这个string的java源文件的编码,这里做了一个转化,stirng在class中是unicode编码的,先转化为java源文件所对应的编码,然后得到结果。

2.new string(byte[]),默认是按照java源文件的编码来转换。

3.  char(int):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值