java中的Reader类中的read方法返回值为什么是个int类型的?

java中的Reader类中的read方法返回值为什么是个int类型的?他每次读入的是一个字符为什么返回值是int类型的? 请高手详细回答?

      java中read方法返回的int类型:如果返回char, 那么无法表示流末尾. char的取值范围是从0到65535。这个范围内的所有字符, 都有可能在数据中出现。需要使用一个不可能在数据中出现的值来表示流末尾。那么Java中就是用-1来表示这个末尾的, 因为-1不会在数据中出现。而为了返回-1, 那么只能用int。当流中读取到一个字符时, read()方法内部就会当作int返回, 如果读到流末尾, 直接返回-1。

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-27
返回的是所读取的字符在Unicode中的值,如:当读到A是返回65,当读到末尾是返回-1本回答被提问者采纳
第2个回答  2008-11-27
为了判断是否到达文件末尾!
第3个回答  2008-11-27
用于判断文件是否到达末尾,到达末尾返回-1
第4个回答  2008-11-27
API

java中的Reader类中的read方法返回值为什么是个int类型的?
1. 在Java中,`Reader`类中的`read`方法返回`int`类型是为了能够表示字符流末尾的特殊情况。2. 如果我们使用`char`类型来表示,由于`char`的取值范围是从0到65535,Java需要一个值来表示流结束,这个值不应该在数据中出现。3. 因此,Java选择使用-1来表示流的末尾。由于-1不会是字符数据的一部分...

java中reader.read()方法返回的int值是怎样得到的?
总之,`Reader.read()` 方法返回的 int 值是由字节通过内部的编码转换得到的 Unicode 字符值。这些值通常在 0 到 65535 之间,对应于 Java 使用的内部编码。通过适当的转换,可以将这些 int 值转换为实际的 Unicode 字符,用于进一步的程序处理。

Java中有几种类型的流?
Int read();从输入流中顺序读取源中的单个字节数据,返回字节值(0~255之间的一个整数),如果到达源的末尾,则返回-1 Read方法还可以吧多个字节读入到字节数组中:Int read(byte b[]);Int read(byte b[],int off,int len);关闭流 使用close();FileOutputStream类 该类提供了基本的文件...

java中reader?
总结而言,Reader是Java字符流的基础,FileReader和BufferedReader则是其派生类,分别提供了从文件读取字符和更高效的字符读取功能。其中,BufferedReader的readLine()方法使得处理文本文件变得更加简单、高效。

Java输入问题
现在看题主所用的 BufferedReader 的 read() 方法。这个方法会返回一个整数,但这个整数并不是你输入的那个整数,而是输入流中的下一个字符在 ASCII 码表中的整数值。你首先用了 num1 = input.read() ;也就是说 num1 是 input 所代表的输入流(也就是标准输入 System.in)中的下一个字符在 ...

java中br.readLine与 br.read的用法有什么区别??
返回:作为一个整数(其范围从 0 到 65535 (0x00-0xffff))读入的字符,如果已到达流末尾,则返回 -1 抛出:IOException - 如果发生 I\/O 错误readpublic int read(char[] cbuf,int off,int len)throws IOException将字符读入数组的某一部分。 此方法实现 Reader 类相应 read 方法的常规协定。另...

java中read()方法的原理是什么?
参数是InputStream的,在方法中,直接把这个参数赋给了变量in。所以FilterInputStream实质上只是对InputStream类做了一个简单的封装,实际调用的方法是在构造方法里传过来的InputStream对象的方法。所以想看read()方法的具体实现,应给去找InputStream类或InputStream类的子类 ...

java中bufferreader的使用方法
reader是字符流,一次读取一个字符,比如字节流会把汉字分成几个字节读取,字符流会直接读一个汉字,bufferreader对reader封装了一下,可以让你一次读取文本的一行文字,当然它是根据\\n 来判断一行数据的结束的

java中文件读取的缓存问题
read方法又不止一个……public int read(byte[] b)throws IOException 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回实际读取的字节数。在输入数据可用、检测到文件末尾或者抛出异常前,此方法一直阻塞。如果 b 的长度为 0,则不读取任何字节并返回 0;否则,尝试读取...

java中System.in.read();是什么意思
System.in.read()可以实现输入字符,返回字符的Unicode码,但是缺点是只能输入一个字符 System.in.read() 返回的是输入数值的 ASKII 码(一个 int 整数)。 如果要求输入与输出的一致的话: 通常情况下,你会用readLine( )一行一行地读取输入,因此要把System.in包装成BufferedReader。但在这之前还得...

相似回答