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

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

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

            byte[] buffer = new byte[4096];
            int n = 0;
            while (-1 != (n = input.read(buffer))) {
                output.write(buffer, 0, n);
            }
    while((s = reader.readLine()) != null){
        sb.append(s);
        sb.append(crlf);
    }

    in.close();
    reader.close();

文件结束的标志是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()方法返回值

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