为什么使用java读取本地文件时要先使用InputStreamReader将字节流转换为字符流对象?

然后才正式使用BufferedReader读取,而不是直接使用BufferedReader读取文件。
如能解答,必定采纳,不要复制粘贴
这个问题的核心是【为什么不能直接使用BufferedReader读取文件】?
不要回答偏了

BufferedReader构造函数所接受的参数只有Reader,而没有File。因此从类的定义的角度来说不能用BufferedReader直接读取文件。
从类的设计层面来说,BufferedReader这个类创建的初衷是用来缓冲处理其他的流,比如FileReader或者InputStreamReader,缓冲之后能够提高输入流的效率。具体应用层面来说,BufferedReader类相对于这些类多了一个readline函数,能够整行整行地读取,而不必只能用read一个一个字符读取,这样大大地提高了读取文件的效率。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-10-18

有说必须要使用字符流吗?这样不行吗?

本回答被提问者采纳

为什么使用java读取本地文件时要先使用InputStreamReader将字节流转换...
比如FileReader或者InputStreamReader,缓冲之后能够提高输入流的效率。具体应用层面来说,BufferedReader类相对于这些类多了一个readline函数,能够整行整行地读取,而不必只能用read一个一个字符读取,这样大大地提高了读取文件的效率。

java中为什么输出输入的时候,为什么要把字节流转换成字符流再出入或输出...
所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成...

关于java流的问题,字节流与字符流,为什么要用转换流,把字节转换成字符流...
这是因为有一些时候系统给你提供的只有字节流,比如说System.in标准输入流。就是字节流。你想从他那里得到用户在键盘上的输入,只能是以转换流将它转换为Reader以方便自己的程序读取输入。再比如说Socket里的getInputStream()很明显只给你提供字节流,你要不行直接用,就得给他套个InputStreamReader()用...

关于java流的问题,字节流与字符流,为什么要用转换流,把字节转换成字符流...
为什么需要用两种流,而且要转换,不直接用字符流。简单说来,就是字符流不能处理所有的情况,字节流也不能处理所有的情况。所以需要两种转换。先说一下二者的区别:1)字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组或字符串,2)而字节流处理单元为1个字节, 操作字节和字节数组。字...

为什如在文件输入输出流是我总遇到InputStream 和BufferedReader成对...
用一个InputStream可以,只用BufferedReader不行,因为BufferedReader需要一个输入流,有时候才操作文件里面是字符,为了提高效率采用两个。

java输出流怎么转换为字符串
Java中InputStream流处理是一个常见的操作,当需要将输入数据转换为byte[]数组时,有多种方法可供选择。本文将为您详细介绍这些转换方法,并提供相应的示例代码,帮助您更直观地理解和应用。首先,最直接的方法是使用InputStream.read(byte[] b, int off, int len),这个方法会读取指定数量的字节到指定...

Java中InputStream和Reader之间的转换(字符流和字节流怎么互相转换啊...
使用InputStreamReader isr = new InputStreamReader(inp);BufferedReader reader = new BufferedReader(isr);可以调用 reader.readLine()方法

java 中inputstream流 转成string,再通过String进行文件的读写时...
流转字符串需要用到一些转码方式,直接会有问题的。拿到文件流后,用base64转成字符串,这个时候就可以随便放哪里存起来,需要的时候讲字符串重新转换成流,在写出到文件就可以了。

Java InputStream、字节数组byte[]与Base64字符串相互转换工具类
首先,InputStream是Java中一种处理字节输入的流,常用于文件读取或网络数据接收。当我们需要将这些字节数据编码为Base64字符串时,工具类提供了一种便捷的方法,它接受InputStream作为输入,经过编码处理后,返回对应的Base64字符串表示。相反,当需要从Base64字符串解码回原始字节数组时,这个工具类同样派上...

inputstreamreader是什么inputstreamreader
1、“InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。2、”InputStreamReader的构造方法 InputStreamReader(InputStream in) 。3、in 输入流(InputStream)已打开并准备提供输入数据。4、通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。5...

相似回答
大家正在搜