大家好,又见面了,我是你们的朋友全栈君。
使用FileInputStream 读取本地文件(图片、视频、音乐、文档资料)
二进制文件、文本文件
1.在物理存储上上没有什么区别,存在硬盘上都是以二进制方式存储
2.解释数据的逻辑不同,程序读取文本文件,可以以字符方式读取,也可以以字节读取,将读取的数据解释为ASCII或者unicode编码;当程序读取二进制文件,以字节方式读取,对读取数据的解释由读取数据而定 ,如读取图片时,需要了解文件的结构,并解释读取的数据,如果不了解图片文件的结构,读取图片文件会失败,图片就会失败。
Java提供的FileInputStream类适合读取二进制文件,而不太适合读取文本文件,若读取文本文件,需要做相应的处理,否则会出现乱码。
乱码原因是FileInputStream类是每次读取一个字节,而中文字符是2个字节表示。
在Java语言中,中文和英文默认被处理为unicode编码 ,即2个字节表示一个字符
用法:
1.File nl=new File(本地路径)
FileInputStream isinput=new FileInputStream(nl)
isinput.read();
2. FileInputStream isinput=new FileInputStream(本地路径)
FileInputStream一般用来读取二进制文件,如果要读取文本文件,建议使用FileInputStream的read(byte[] b)方法读取整个文本文件,并将读取文件后的byte数组转换为字符串类型。用循环语句读取文件时,必须设定中止循环条件,一般以读取到文件尾部为中止条件。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140885.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...