从InputStream获取URL

时间:2017-03-04 05:02:32

标签: java stream java-io

我想知道如何从低级角度实现java中的 InputStream

假设我编写了一个以下java代码来建立与网站的连接。

<HTML>
  <button onclick="myFunction()">  
    <span id="nav-btn">
      <image src="Menugreen.png" alt="collapsable menu"/>  
    </span>
  </button>  
<div class="nav">
  <ul>
    <li id="Programs"> <a href="Programs.html"> Programs </a> </li>
    <li> <a href="Tshirts.html"> T-Shirts </a> </li>
    <li id="About"> <a href="About.html"> About </a> </li>
  </ul>
</div>
</HTML>  

我可以直接通过投射它的类型来知道来自InputStream的URL(&#34;在&#34;在上面的代码块中)并调用如下所示的适当方法吗?有没有其他方法可以从InputStream获取URL?

url = new URL("[some url info]");
URLConnection urlcon = url.openConnection();
InputStream in = urlcon.getInputStream();
while((readcount = in.read(buffer)) != -1){
        fos.write(buffer,0,readcount);

我搜索了InputStream的所有子类,但我找不到任何具有接口的类来提供它的URL。 (https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html

但是,我认为InputStream以某种方式拥有URL信息,以便从具有此URL的网站接收数据。

我可能对&#34; Stream&#34;。

有很大的误解

感谢您阅读我的排名。 :)

1 个答案:

答案 0 :(得分:2)

InputStream只是stream而不是URLConnection。当您输入InputStream in = urlcon.getInputStream();时。您将获得输入流而不是URL连接。当您输入in.read时,您正在阅读流而不是URLConnection

  

InputStream是对数据源的引用(无论是文件,网络   连接等),我们想按如下方式处理:

     
      
  • 我们通常希望将数据读作&#34;原始字节&#34;然后编写我们自己的代码来做一些有趣的字节;

  •   
  • 我们通常希望按顺序读取数据:也就是说,为了到达数据的第n个字节,我们必须首先读取所有前面的字节,并且我们不能保证能够到&#34;跳回来#34;一旦我们读完它们,我们就会再次。

  •