问题阐述
在日常生活和工作中,经常需要下载一些网络资源,但是由于网络资源大小不一,为了合理安排时间,最好能够知道网络资源的大小,这样就可以合理安排网络资源的下载时间。那么该如何获取网络资源的大小呢?
专家解答
(1)新建项目,在项目中创建一个继承JFrame类的窗体类。
(2)将窗体类的内部面板设置为绝对布局,然后在窗体上添加标签、文本框和命令按钮控件,完成窗体界面的设计。
(3)在窗体类中,定义获得网络资源大小的netSourceSize()方法,该方法的代码如下:
public longnetSourceSize(String sUrl) throws Exception{
URL url = new URL(sUrl); // 创建URL对象
URLConnection urlConn =url.openConnection(); // 获得网络连接对象
urlConn.connect(); // 打开到url引用资源的通信链接
return urlConn.getContentLength(); // 以字节为单位返回资源的大小
}
(4)在窗体类InternetSizeFrame的“获得大小”按钮事件中,添加获得网络资源大小,并将网络资源大小显示在文本框中的事件代码:
button.addActionListener(newActionListener() {
public void actionPerformed(finalActionEvent e) {
String address = tf_address.getText().trim(); // 获得输入的网址
try{
long len = netSourceSize(address); // 调用方法获取网络资源的大小
tf_size.setText(String.valueOf(len)+"字节"); //在文本框中显示网络资源的大小
}catch(Exception ex){
ex.printStackTrace();
}
}
});
运行程序,输入网络资源的网址,单击窗体上的“获得大小”按钮,即可获得网络资源的大小,效果如图16.8所示。
图16.8获得网络资源的大小
专家点评
使用URLConnection类的getContentLength()方法,可以获得以字节为单位的网络资源的大小,但是当网络资源很大时,以字节为单位进行查看不是很方便,为此可以将字节转换为MB或GB,从而方便查看网络资源的大小。
关于【C语言编程锦囊】,可能你还想知道:
领取专属 10元无门槛券
私享最新 技术干货