java io流 如何判断结尾,-1和readline的null是怎么得到的

java io流 如何判断结尾,-1和readline的null是怎么得到的
在读取文件和在流里读取数据时怎么知道已经读完了。
我用server接收http请求,要判断结尾

5个回答

判断流的read是否为-1,类似如下

            byte[] buffer = new byte[4096];
            int n = 0;
            while (-1 != (n = input.read(buffer))) {
                output.write(buffer, 0, n);
            }
u010945068
Hot_Doge 我知道-1,我想问的是具体实现,-1是怎么得到的
4 年多之前 回复
    while((s = reader.readLine()) != null){
        sb.append(s);
        sb.append(crlf);
    }

    in.close();
    reader.close();
strutce
丵鹰 不会啊,我的方法就是这么写的没问题啊
4 年多之前 回复
u010945068
Hot_Doge 这样会一直等待输入,readline会阻塞,不会返回null
4 年多之前 回复

文件结束的标志是EOF,对应值是-1

这是jdk封装的读取文件方法的返回值,代表不同的状态

   InputStream ins = new FileInputStream("file.text");  
   OutputStream out=new FileInputStream("filec.text"); 
                    byte[] size = new byte[1024];   
     int hasRead = 0;   
    while((hasRead = ins.read(bbuf))>0)  
   {  
      out.witer(bbuf,0,hasRead));  
            out.flush();
     }  
   ins.close();  
  out.close();  

BufferedReader 的brReader.readLine() 在while循环读取的时候 ,返回值不为空就继续循环读取文件,为空就说明读取完毕,null 就是readLine()方法返回值

我也有这个问题。。楼主解决了吗。求分享

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问