Java 来自BufferedReader时,许多行中缺少第一个字符

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,以查看是否已到达流的末尾。但是,您没有打印

我试图打印URL的内容,但第一个字符在许多行中丢失。与以下输出“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);
}
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