我想知道如何从低级角度实现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;。
有很大的误解感谢您阅读我的排名。 :)
答案 0 :(得分:2)
InputStream
只是stream而不是URLConnection
。当您输入InputStream in = urlcon.getInputStream();
时。您将获得输入流而不是URL连接。当您输入in.read
时,您正在阅读流而不是URLConnection
。
InputStream是对数据源的引用(无论是文件,网络 连接等),我们想按如下方式处理:
我们通常希望将数据读作&#34;原始字节&#34;然后编写我们自己的代码来做一些有趣的字节;
我们通常希望按顺序读取数据:也就是说,为了到达数据的第n个字节,我们必须首先读取所有前面的字节,并且我们不能保证能够到&#34;跳回来#34;一旦我们读完它们,我们就会再次。