做网站用什么语言开发,网站怎么做最省钱,wordpress添加备案号插件,江苏建设人才是官方网站一、InputStream和Reader的区别 InputStream和Reader都可以用来读数据(从文件中读取数据或从Socket中读取数据)#xff0c;最主要的区别如下: InputStream用来读取二进制数(字节流)#xff0c;而 Reader用来读取文本数据#xff0c;即 Unicode字符。那么二进制数与文本数据有…一、InputStream和Reader的区别 InputStream和Reader都可以用来读数据(从文件中读取数据或从Socket中读取数据)最主要的区别如下: InputStream用来读取二进制数(字节流)而 Reader用来读取文本数据即 Unicode字符。那么二进制数与文本数据有什么区别呢?从本质上来讲所有读取的内容都是字节要想把字节转换为文本需要指定一个编码方法。而 Reader就可以把字节流进行编码从而转换为文本。当然这个转换过程就涉及编码方式的问题它默认采用系统默认的编码方式对字节流进行编码也可以显式地指定一个编码方式例如“UTF-8″。尽管这个概念非常简单但是Java程序员经常会犯一些编码的错误最常见的错误就是不指定编码方式。在读文件或从 Socket读取数据的时候如果没有指定正确的编码方式读取到的数据可能就会有乱码进而导致数据丢失。 二、FileInputStream和 FileReader的区别 FileInputStream和 FileReader有着类似的区别它们都用于从文件中读取数据但是FileInputStream用于从文件中读取二进制数据(字节流)而 FileReader用于从文件中读取字符数据。FileReader 继承自 InputStreamReader它要么使用系统默认的编码方式要么使用 InputStreamReader所使用的编码方式。需要注意的是 InputStreamReader缓存了字符编码因此在创建 InputStreamReader对象以后如果再对字符编码进行修改将没有任何作用。下面给出一个使用 Filelnputstream和FileReader的例子: 程序的执行结果为 7465737420726561642066696c65 test read file从上面的代码可以看出 FilelnputStream读取数据的方式是一个字节一个字节地读取因此读取速度会比较慢同时read方法是一个阻塞方法它要么读取到一个字节要么阻塞(等待可被读取的数据)这个方法的返回值为读取到的字节数当读取到文件结尾的时候会返回-1。在使用FileInputStream的例子中每个循环读取一个字节然后转换为十六进制字符串输出。 FileReader I中的read方法每次读取一个字符直到读取到文件结尾时这个方法返回-1。 上海尚学堂Java培训技术干货之FileInputStream和 FileReader的区别就说明到此。更多Java技术知识文章请看本博客的其他文章需要java学习资料视频请留言评论。尚学堂Java全套详细学习资料视频和Python400集视频以及程序员修炼手册干货非常有。转载于:https://www.cnblogs.com/shsxt/p/9809645.html