Java 来自BufferedReader时,许多行中缺少第一个字符
我试图打印URL的内容,但第一个字符在许多行中丢失。与以下输出“BufferedReader.read()的javadoc类似,它是这样说的: 读取单个字符 返回: 读取的字符,范围为0到65535(0x00-0xffff)之间的整数,如果已到达流的末尾,则为-1 现在,让我们看看代码:Java 来自BufferedReader时,许多行中缺少第一个字符,java,bufferedreader,Java,Bufferedreader,我试图打印URL的内容,但第一个字符在许多行中丢失。与以下输出“BufferedReader.read()的javadoc类似,它是这样说的: 读取单个字符 返回: 读取的字符,范围为0到65535(0x00-0xffff)之间的整数,如果已到达流的末尾,则为-1 现在,让我们看看代码: while ((br.read()) != -1) { System.out.println((br.readLine())); } 您正在检查返回值read,以查看是否已到达流的末尾。但是,您没有打印
while ((br.read()) != -1) {
System.out.println((br.readLine()));
}
您正在检查返回值read
,以查看是否已到达流的末尾。但是,您没有打印该值(该值未存储在任何引用中,因此在比较后会丢失)。理想情况下,您需要将该值与整行一起打印,例如:
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
BufferedReader.read()
的javadoc是这样写的:
读取单个字符
返回:
读取的字符,范围为0到65535(0x00-0xffff)之间的整数,如果已到达流的末尾,则为-1
现在,让我们看看代码:
while ((br.read()) != -1) {
System.out.println((br.readLine()));
}
您正在检查返回值read
,以查看是否已到达流的末尾。但是,您没有打印该值(该值未存储在任何引用中,因此在比较后会丢失)。理想情况下,您需要将该值与整行一起打印,例如:
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
这是完整的工作代码。我参考了Oracle Java文档
这是完整的工作代码。我参考了Oracle Java文档
明白了!谢谢Darshang!谢谢Darshan