设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
JAVA
›
I/O流实战应用精选:网络图片下载器——Java进阶系列(十 ...
返回列表
发帖
查看:
112
|
回复:
1
I/O流实战应用精选:网络图片下载器——Java进阶系列(十一 ...
[复制链接]
很好思密达
很好思密达
当前离线
积分
14
4
主题
6
帖子
14
积分
新手上路
新手上路, 积分 14, 距离下一级还需 36 积分
新手上路, 积分 14, 距离下一级还需 36 积分
积分
14
发消息
发表于 2022-12-28 12:26:49
|
显示全部楼层
|
阅读模式
序
欢迎来到全网最完整的Java入门系列教程!!!
本教程将包含基础知识、进阶知识、常用框架等,
循序渐进地分享Java中必须掌握的知识和技术。
建议跟着教程的节奏每天学习一点,你会发现入门Java没有想象中那么难。
经过前两期的分享,我们已经把IO文件读写的主要知识点讲完了,
本期我们要结合实际实战一下,写一个图片下载器。
如果你正在学习Java,不妨收藏这篇文章,或者关注我
,定期收获与Java有关的知识和项目信息!
想要了解Java基础部分的课程内容,可以看我的专栏->
老K玩代码:[专栏]Java基础知识讲义系列
<hr/>
学习了这么多,看看我们能用现有的知识做些什么!
我们要做一个综合的案例,利用I/O的类和URLConnection类,写一个网络资源下载程序。
示例为下载图片,图片如下:
示例图片
代码示例:
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public class IODemo {
public static void main(String[] args) {
// 声明stream输入输出类
OutputStream os = null;
InputStream is = null;
try {
// 生成URL类并建立连接
URL url = new URL(&#34;https://pics3.baidu.com/feed/a6efce1b9d16fdfa222e01f32738f15c95ee7ba9.jpeg?token=12cb5d07cd9ce5f9a2954e0c669306a6&#34;);
URLConnection conn = url.openConnection();
is = conn.getInputStream();
// 准备输出文件,开始读写
File f = new File(&#34;io.jpg&#34;);
os = new FileOutputStream(f);
byte[] b = new byte[1024];
int len = 0;
while((len = is.read(b))!= -1) {
os.write(b, 0 ,len);
}
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
// 关闭对象
try {
os.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
try {
is.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}说明:
URL是网络资源地址的类,传入的构造参数是目标资源网址,小伙伴可以根据需要更换不同的资源地址;
URL实体可以通过openConnection方法建立网络连接通道,返回值为URLConnection类;
通过URLConnection的getInputStream方法,可以获取到目标资源的字节流数据,我们通过InputStream类进行接收;
剩余部分的代码逻辑和OutputStream章节中的示例相似,不作展开说明了,详见之前的章节,传送按钮->。
<hr/>根据以上代码写一遍,你有没有成功获取到上述的图片资源呢?
如果有任何疑问或者遇到任何问题,可以在评论区给我留言或者私信我进行讨论。
本期的内容就分享到这里。
正在学习的小伙伴记得给老K一个赞哦,你的支持是我持续输出课程内容最大的动力!
Java进阶知识前十课的内容,可点击下方获取:
老K玩代码:如何优雅的处理异常--Java进阶知识讲义系列(一)
老K玩代码:包装器类装箱与拆箱的艺术——Java进阶知识讲义系列(二)
老K玩代码:一文讲透Java字符串——Java进阶知识讲义系列(三)
老K玩代码:List的用法和实例详解——Java进阶知识讲义系列(四)
老K玩代码:Set的用法和实例详解——Java进阶知识讲义系列(五)
老K玩代码:Map的用法和实例详解——Java进阶知识讲义系列(六)
老K玩代码:常用集合的排序方法——Java进阶知识讲义系列(七)
老K玩代码:I/O流之File类的用法和实例详解——Java进阶知识讲义系列(八)
老K玩代码:I/O流之字节流的读写——Java进阶知识讲义系列(九)
老K玩代码:I/O流之字符流的读写——Java进阶知识讲义系列(十)
结束语
我是专注于开发领域的 @老K玩代码 ,会持续生产关于如何学习编程语言的优质内容。
如果你想学习Java编程,或者想精进你的Java编程能力,可以关注我。
如果你对开发、编程有任何疑问或者有想了解的内容,而我暂时没有写到的,也欢迎随时来找我聊聊。
回复
使用道具
举报
低云
低云
当前离线
积分
11
1
主题
6
帖子
11
积分
新手上路
新手上路, 积分 11, 距离下一级还需 39 积分
新手上路, 积分 11, 距离下一级还需 39 积分
积分
11
发消息
发表于
昨天 06:45
|
显示全部楼层
我也是坐沙发的
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
C语言
C++
NET
数据库
快速回复
返回顶部
返回列表